c++中循环和文本输入的方法

1.使用原始的cin进行输入;

哨兵字符: 程序利用某个特殊字符来检测何时停止读取文本输入。

while(ch != ‘#')

{

cout<<ch;

++count;

cin>>ch;

}

这里使用了#作为哨兵字符!

2.使用cin.get(char)进行补救;

通常逐个字符读取输入的程序需要检查每个字符,包括空格,制表符和换行符.

扫描二维码关注公众号,回复: 5594303 查看本文章

cin.get(ch);

while(ch != '#')

{

cout<<ch;

++count;

cin.get(ch);

}

文件尾文件

检测文件尾(EOF)

1.EOF结束输入

cin方法检测到EOF时,将设置cin对象中一个指示EOF条件的标记.设置这个标记后,cin将不读取输入,再次调用cin也不管用.这是对于文件输入而言的.而对于键盘输入,有可能使用模拟EOF来结束循环,但稍后要读取其他输入.cin.clear()方法可能清除EOF标记,使输入继续进行.不过,在有些系统中,按Ctrl+Z实际上是结束输入和输出,而cin.clear()将无法恢复输入和输出.

2.常见的字符输入做法

每次读取一个字符,直到遇到EOF的输入循环的基本设计如下

cin.get(ch);

while(cin.fail()==false)

{

......

cin.get(ch);

}

程序;

#include<iostream>

int main()

{

using namespace std;

int ch;

int count = 0;

while((ch=cin.get())!=EOF)

{

cout.put(char(ch));

++count;

}

cout<<endl<<count<<" characters read\n";

return 0;

}

嵌套循环和二维数组

#include<iostream>

const int Cities=5;

const int Years=4;

int main()

{

using namespace std;

const char * cities[Cities]=

{

"Gribble City",

"Gribbletown",

"New Gribble",

"San Gribble",

"Gribble Vista"

};

int maxtemps[Years][Cities]=

{

{95,99,86,100,104},

{95,97,90,106,102},

{96,100,940,107,104},

{97,102,89,107,104}

};

cout<<" Maximum temperatures for 2000-2005\n\n";

for ( int city =0; city<Cities; ++city)

{

cout<<cities[city]<<":\t";

for ( int year = 0; year<Years; ++year)

cout<<maxtemps[year][city]<<"\t";

cout<<endl;

}

return 0;

}

总结:

C++提供了3种循环:for循环,while循环和do-while循环。

许多程序都逐字节的读取文本输入或文本文件,istream类提供了多种可以完成这种工作的方法,如果是一个char变量,则下面的语句

cin>>ch;

将输入中的下一个字符读取到ch中,不过将忽略空格,换行符和制表符,下面的成员函数调用

cin.get(ch);

读取输入中的下一个字符,不管该字符是什么都将其存储在ch中,成员函数cin.get()返回下一个输入字符

包括空格,换行符和制表符,因此可以这样使用:    ch=cin.get();

cin.get(ch)成员函数调用通过返回转换成false的bool值来指出已达到EOF,而cin.get()成员函数调用则通过返回EOF值来指出已达到EOF,EOF是在文件iostream中定义的.

嵌套循环是循环中的循环,是和处理二维数组.

猜你喜欢

转载自blog.csdn.net/ycl1989y/article/details/7835825