首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

请教怎么用c语言从控制台(stdin) 读入一行字符(含空格 数字)到字符数组

2012-02-27 
请问如何用c语言从控制台(stdin) 读入一行字符(含空格 数字)到字符数组?请问如何用c语言从控制台(stdin)读

请问如何用c语言从控制台(stdin) 读入一行字符(含空格 数字)到字符数组?
请问如何用c语言从控制台(stdin)   读入一行字符(含空格   数字)到字符数组?

[解决办法]
ft!
上面说错了,应该就是用gets来的。

你用scanf(“%s”,array)这个,遇到空格就表示结束了。

gets( array );----这个可以输入空格,回车结束。。
[解决办法]
方法 1
使用
char buf[80]={0};
gets(buf); //可以读取空格, 回车结束输入
[解决办法]
scanf中一种很少见但很有用的转换字符:[...]和[ ^...]。
#include <stdio.h>
main()
{
char strings[100];
scanf( "%[1234567890] ",strings);
printf( "%s ",strings);
return 0;
}
运行,输入:1234werew后,结果是:1234。
通过运行可以发现它的作用是:如果输入的字符属于方括号内字符串中某个字符,那么就提取该字符;如果

一经发现不属于就结束提取。该方法会自动加上一个字符串结束符到已经提取的字符后面。
scanf( "%[^1234567890] ",strings); 它的作用是:如果一经发现输入的字符属于方括号内字符串中某个字符

,那么就结束提取;如果不属于就提取该字符。该方法会自动加上一个字符串结束符到已经提取的字符后面


注意:方括号两边不能空格,如:scanf( "%[ 1234567890 ] ",strings); scanf( "%[ ^1234567890

] ",strings); 不让空格也会算在里面的。
用这种方法还可以解决scanf的输入中不能有空格的问题。只要用
scanf( "%[^\n] ",strings); 就可以了。

热点排行