最近,要去航盛电子面试了,水平比较低啊,临时抱抱佛脚吧。。。
考点:考察对文件的读写以及修改等操作,虽然不难,但是我不会。。。
文件的输出操做
#include <fstream>
int main()
{
std::ofstream cout; //输出流对象 cout
cout.open("text.txt"); //打开text.txt
cout << "Hello,C++"; //写入
cout.close(); //关闭
return 0;
}
读取文件中的数据
#include <iostream>
#include <fstream>
int main()
{
std::ifstream fin;
fin.open("test.txt");
char temp[100];
fin >> temp;
std::cout << temp << std::endl;
return 0;
}
重点:如何读取空格和空格后面的字符,如何读取换行符和换行符后面的字
在这里我们首先要分析一下常用的读取函数吧
std::cin (忽略空格,回车)
说明:在定义流对象的时候,系统会在内存中开辟一段缓冲区,用来暂存输入输出流的数据。
下面两种情况下会停止并输出:
(1)遇到空格或者‘\0’
(2)遇到换行符
这就意味着空格后面的我们都读不到,局限很大
cin.get() == getchar() (读取回车,空格)
**(1)ch = cin.get()
(2)cin.get(a, 20); //a为数组名,20为接收数字大小**
下面以getchar()说明!
int getchar(void)
返回值可为字符,也可以为ASCII码
当程序调用getchar时候,程序就等着用户按键。用户输入的字符被存放在键盘缓冲区中。直到用户按下回车(回车字符也被放在缓冲区)。getchar开始从stdio流中每次读入一个字符。
注意注意啦!!!如果我们输入了不止一个字符,那么剩余的字符就会被放在缓冲区里,等待下一个getchar();且下面直接就会读取,不需要我们按下回车!
不过,从这个特性来看,getchar()作为输入不太好用
最重要的作用,略带看不见的字符!!!
下面就是经典的getchar()输入用法:
(c = getchar() )!= ‘\n’
#include <iostream>
int main()
{
char a ;
while ((a = std::cin.get()) != '\n')
{
std::cout << a;
}
return 0;
}
cin.getline()
做多可接收3个参数
cin.getline(字符串数组名,大小,截止字符)
#include <iostream>
int main()
{
char m[20];
std::cin.getline(m, 5);
std::cout << m << std::endl;
return 0;
}
getline() //string类的输入
#include<iostream>
#include<string>
using namespace std;
main ()
{
string str;
getline(cin,str);
cout<<str<<endl;
}
和cin.getline()类似,但是cin.getline()属于istream流,而getline()属于string流
上面我们所讲的某些方法,在文件流中也有对应的使用
int main()
{
std::ifstream fin;
fin.open("test.txt");
char temp[100];
fin.getline(temp, 100, 0); //0 为空字符(空格不是空字符)
std::cout << temp << std::endl;
return 0;
}