2013-04-06 67 views
0

我想从用户读取文本行,但fgetsprintf("Enter a string:");程序终止后无法正常工作,并且没有机会输入任何内容。如何从stdin读取一行

fgets(string, 100, stdin) 
+1

某些代码可能会有所帮助。 – 2013-04-06 15:20:54

+0

曾尝试scanf(“%[^ \ n]”,aaa);其中aaa是你的字符变量 – Satya 2013-04-06 15:21:27

+0

我的调试水晶球告诉我'string'被声明为'char * string;'(这是我发布“代码”后不得不继续编译的所有内容)。考虑提供一个真正的字符缓冲区,而不仅仅是一个不确定的指针。 – WhozCraig 2013-04-06 16:19:59

回答

1

这里是你如何能做到这:

char mystr[100]; 
if (fgets (mystr, 100 , stdin) != NULL) { 
    puts (mystring); 
} 

你为了这个编译需要#include <stdio.h>

第一个指针必须指向一个足够大小的内存块以适应第二个指针中传递的字符数。

+1

'sizeof(mystr)'而不是硬编码函数调用中的值'100'? – 2013-04-06 15:25:10

+2

*'#include ' – 2013-04-06 15:25:20