C++中读入一行字符
来源:互联网 发布:怎么看我的淘宝店铺 编辑:程序博客网 时间:2024/05/16 14:14
头文件<fstream>, 最好不要用 fstream.h. 我在写程序的时候,发现用后者会出现不理想的输出,具体原因不清楚,大概是C++标准的问题。
Solution1:
e.g.1
char str[90];
infile>>str;
outfile<<str<<endl;
infile>>str;
outfile<<str<<endl;
infile>>str;
outfile<<str<<endl;
输入文件infile格式:
****************kusdafi********************
**************hlkafshd*********************
***********hkalsf**8
输出文件outfile格式:(保持与infile一致)
****************kusdafi********************
**************hlkafshd*********************
***********hkalsf**8
程序解释:定义str[90],通过infile>>str;可以读入一行字符,只要这行字符的数目小于89(最后一个位置要存放结束符‘/0’),都可以读入,并且通过outfile<<str<<endl;输出倒输出文件中。
缺点:当这一行字符中有空格的时候,infile>>str 只能读到空格的时候结束
当有空格的时候程序效果: 输入文件格式
1234 5678
9001 90002
则对应输出文件格式:
1234
5678
9001
Solution2:
优点:getline语句可以读入一行,不管带不带空格。
e.g.
char starSingnalTemp1[81];
char starSingnalTemp2[81];
char starSingnalTemp3[81];
infile.getline(starSingnalTemp1,81,'/n');
infile.getline(starSingnalTemp2,81,'/n');
infile.getline(starSingnalTemp3,81,'/n');
outfile.write(starSingnalTemp1,80);
outfile<<endl;
outfile.write(starSingnalTemp2,80);
outfile<<endl;
outfile.write(starSingnalTemp3,80);
outfile<<endl;
outfile<<"0 1 0"<<endl;
解释:
infile.getline(starSingnalTemp1,81,'/n');
读入一行字符,当遇到'/n'(回车符)的时候,结束读入操作。字符个数最多80个(不包括字符串
结束符'/0'),第81位保存结束符。在这里,这句话等价于infile.getline(starSingnalTemp1,81);
如果写成infile.getline(starSingnalTemp1,80);而文件中的一行恰好为80个字符的时候,函数会报错,存储空间少了一位。
outfile.write(starSingnalTemp1,80);
将数组中存放的钱80个字符写入输出文件,注意这80个字符是不包含结束符'/0'的计数,如果字符串第
80位是结束符,那么应该写成outfile.write(starSingnalTemp1,79);
当红色的语句 outfile<<endl;没有写入的时候,输入输出效果:
输入文件:
1234 5678
1256 7890
1122
输出文件:数据都放在一行上面
1234 5678 口口口口口口口口……1256 7890口口口口口口…… 1122口口口口口口……0 1 0
当红色的语句 outfile<<endl;写入的时候,输入输出效果:
输入文件:
1234 5678
1256 7890
1122
输出文件:
1234 5678
1256 7890
1122
0 1 0
- C++中读入一行字符
- C++中读入一行字符的操作
- 【C++】读入一行
- C/C++ 读入一行字符串
- C++ getline()函数读入一行字符
- 读入一行字符(包括空格)做为一个字符串的两个方法 ,C/C++
- C语言实现UNIX中一次读入一个字符
- 【C++】【格式】c++ 如何读入一行字符串
- gets strtok sscanf 实现读入一行并分割字符
- 编写一个程序读入一行输入,然后反向打印该行,您可以把输入存储在一个char数组中: 假定该行不超过255个字符。回忆一下,您可以使用具有%c说明符的scanf()从输入中一次 读入一个字符,而且当您按下回车键时会产生换行符(/n)
- 编写一个程序读入一行输入,然后反向打印该行,您可以把输入存储在一个char数组中: 假定该行不超过255个字符。回忆一下,您可以使用具有%c说明符的scanf()从输入中一次 读入一个字符,而且当您按
- c函数-标准读入一个字符
- C语言学习笔记字符读入读出
- c/c++ 读入一行不确定个数的整数
- c/c++ 读入一行不确定个数的整数
- C程序读入一组文本行,打印最长的一行。
- c 中一些常见ASCII值 以及scanf读入字符时的问题 树的同构
- 从键盘读入一行字符,把其中的字母字符一次存放在磁盘文件f2.dat中。再把它从磁盘文件读入程序,将其中的小写字母改为大写字母,再存入磁盘文件f3.dat
- 利用程序代码删除文件
- [双语阅读]英皇家学会网上公开牛顿等名人手稿
- C与C++风格字符串
- “公务员考试”怎么说?
- 外貌主义 lookism
- C++中读入一行字符
- C# 在C#中使用SendMessage[转]
- developerWorks
- C# SendMessage备忘[转]
- 命令大全
- 请教:电子商务专业学生选择问题!
- POI操作Excel
- 快捷键
- 女人爱问的几个问题之标准答案