方法一: scanf() 读入 char[]
使用方法:
- char str[1024];
- scanf("%[^\n]",&str);
- getchar();
说明: 在 scanf 函数中, 可以使用 %c 来读取一个字符, 使用 %s 读取一个字符串, 但是读取字符串时不忽略空格, 读字符串时忽略开始的空格, 并且读到空格为止, 因此只能读取一个单词, 而不是整行字符串.
其实 scanf 函数也可完成这样的功能, 而且还更强大. 这里主要介绍一个参数,%[ ], 这个参数的意义是读入一个字符集合.[ ] 是个集合的标志, 因此 %[ ] 特指读入此集合所限定的那些字符, 比如 %[A-Z] 是输入大写字母, 一旦遇到不在此集合的字符便停止. 如果集合的第一个字符是 "^", 这说明读取不在 "^" 后面集合的字符, 既遇到 "^" 后面集合的字符便停止. 注意此时读入的字符串是可以含有空格的, 而且会把开头的空格也读进来.
注意: 如果要循环的多次从屏幕上读取一行的话, 就要在读取一行后, 在用 %c 读取一个字符, 将输入缓冲区中的换行符给读出来. 否则的话, 在下一次读取一行的时候, 第一个就遇到'\n', 匹配不成功就直接返回了. 这里可以用 scanf() 或者 getchar() 函数读取换行符.
方法二: getchar() 读入 char[]
使用方法:
- char str[1024];
- int i=0;
- while((str[i]=getchar())!='\n')
- i++;
- getchar();
说明: 这样一个一个读也可以, 也会把开头的空格读进来. 最后也需要考虑换行符, 使用 getchar() 读出来.
方法三: gets() 读入 char[]
使用方法:
- char str[1024];
- gets(str);
说明: 感觉这个就是多个 getchar 的集合函数, 很好用. 功能是从标准输入键盘上读入一个完整的行 (从标准输入读, 一直读到遇到换行符), 把读到的内容存入括号中指定的字符数组里, 并用空字符'\0'取代行尾的换行符'\n'. 读入时不需要考虑换行符.
方法四: getline() 读入 string 或 char[]
使用方法:
- string str;
- getline(cin,str);// 读入 string
- char str2[1024];
- cin.getline(str2,1024);// 读入 char 数组
说明: 这是比较常用的方法, cin.getline 第三个参数表示间隔符, 默认为换行符'\n'. 读入不需要考虑最后的换行符.
方法五: get() 读入 char[]
使用方法:
- char str3[1024];
- cin.get(str3,1024);// 读入 char 数组
说明: get 函数读入时需要考虑最后的换行符, 也就是说, 如果用 get 读入多行数据, 要把'\n'另外读出来, 一般使用 cin.get(str,1024).get(); 来读入多组数据.
作者: http://www.cnblogs.com/AlvinZH/
来源: http://www.bubuko.com/infodetail-3096333.html