首页 > 学院 > 开发设计 > 正文

C++ 输入方法

2019-11-14 11:50:57
字体:
来源:转载
供稿:网友

一、字符串输入:

1、面向单词的输入:

cin>>使用空白(空格、制表符和换行符)确定字符串的结束位置。如果一次输入两个单词,中间隔着空格,则只读取第一个单词,并自动在结尾处添加空字符。而另一个单词会留在缓冲中,有可能被后面的输入读到。

2、面向行的输入:

1)getline,通过回车键输入的换行符来确定结尾,然后丢弃换行符,并用空字符取代之。调用:cin.getline()。

有两个参数,第一个参数用来存储字符串的名称,第二个参数是要读取的字符数,注意要把空字符算上。

2)get,类似getline,但是将换行符留在输入队列中。如果要连续读,需要用不带参数的get()方法接收掉换行符。

cin.get(name,ArSize);

cin.get();

cin.get(dessert,ArSize);

注意以上方法均返回一个cin对象,因此可以连续输入。

通常getline使用起来简单一点,get使得检查错误更简单些。

在混合输入字符串和数字时,经常发生输入空行的情况。比如cin输入数字,此时cin不丢弃换行符留在输入队列中,这样就会被下文的getline等读到,从而变成空行。因此通常在输入字符串前要用get检查前面的输入是否留有换行符。

二、循环字符输入

1、cin>>,比如对于哨兵字符:

cin >> ch;

while (ch != '#')

{

cout << ch;

cin >> ch;

}

注意,cin读取字符时忽略空格和换行符,不会赋予ch,故也不会回显。

2、cin.get(ch)读取每个字符,包括空格、制表和换行符。

注意cin.get()和cin.get(char)使用了函数重载,是一个函数的两个版本。前者返回输入中的下一个字符并作为int值返回,后者返回一个istream对象,故可以拼接。而cin.get(name,ArSize)用于接收字符串。

三、文件尾条件

1、用cin.get(char)方法:

while(cin.get(ch))

{..}

2、用cin.get()方法:

int ch;

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

cout.put(char(ch));

}

注意必需用int。EOF通常被定义为-1,但在有些系统中,char类型没有符号,不可能为EOF。另外,在显示时必需强制转化为char类型。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表