2014-12-04 60 views
0

早上好,我在C语言输入时遇到了问题。我想要做的是读取一个词,包括所有跟随它到下一个词 的空格,例如:一字一句的阅读,包括以下空格

Hello_______Hi // consider _ to be a whitespace 

Hello_______ 

我还没有找到一种方法,使scanf做的伎俩,既不strtok。我全都没有想法,任何一般的提示都会很棒!谢谢

+1

显示你尝试过什么,也通过给出一些输入和wh来显示你想要达到什么你希望成为输出吗? – bitcell 2014-12-04 08:28:57

+1

如果你想能够阅读第二个单词,那么你必须阅读完整的一行并自己进行解析。 – 2014-12-04 08:33:25

回答

1

您可以轻松地做到这一点scanf

char *a; 
printf ("\n Enter a string: "); 
scanf ("%m[^\n]%*c", &a); 
printf ("\n string: '%s'\n\n", a); 

输出:

$ ./bin/scanfws 

Enter a string: Hello  Hi 

string: 'Hello  Hi' 

要没有scanf分配:

char a[30]; 
printf ("\n Enter a string: "); 
scanf ("%[^\n]%*c", a); 
printf ("\n string: '%s'\n\n", a); 
+0

嗯,如果我使用确切的代码,我会立即崩溃 – 2014-12-04 08:36:31

+0

这是不可能的。你是在Window还是Linux? – 2014-12-04 08:38:15

+0

我在windows上,使用代码块编辑代码并使用gcc编译器进行编译,它的工作原理类似于没有分配scanf的魅力。谢谢! – 2014-12-04 08:40:14