读书人

c语言中怎样用scanf()读入带空格的字符

发布时间: 2012-09-08 10:48:07 作者: rapoo

c语言中怎样用scanf()读入带空格的字符串?
#include <stdio.h>

int main(void)
{
int i;
char a[5];

scanf("%s", a);
printf("%s\n", a);

return 0;

}

运行输入hello world
回车
则输出的只是空格之前的部分,怎样把空格之后的部分也输出呢?

[解决办法]
谁说scanf不能做到?

C/C++ code
#include <stdio.h>int main(){    char str[128];    scanf( "%[^\n]", str );    printf( "%s\n", str );    return 0;}
[解决办法]
C/C++ code
#include <stdio.h> //char *fgets( char *str, int num, FILE *stream );int main(){    char buffer[10];    //fgets(buffer,10,stdin); //这个带有回车符    gets(buffer);    //这个没有回车符    printf("%s",buffer);    return 0;}
[解决办法]
探讨

谢谢各位了
真是博大精深啊
小弟正在学C基础呢
现在明白一点了,用gets()最能满足我现在的需要,fgets()连回车符都获取了
至于scanf()用正则表达式,那就更高深了,等小弟以后慢慢研究吧

有点疑问:用gets(),为什么在编译时提示这个函数很危险呢?(ubuntu系统 gcc编译器)

[解决办法]
探讨
谢谢各位了
真是博大精深啊
小弟正在学C基础呢
现在明白一点了,用gets()最能满足我现在的需要,fgets()连回车符都获取了
至于scanf()用正则表达式,那就更高深了,等小弟以后慢慢研究吧

有点疑问:用gets(),为什么在编译时提示这个函数很危险呢?(ubuntu系统 gcc编译器)

读书人网 >C语言

热点推荐