在C中获取字符串的全部输入

时间:2013-05-04 17:06:42

标签: c fgets

#include
char option[64],line[256];

main()

{

printf(">>")
(fgets(line, sizeof(line), stdin)) {
            if (1 == sscanf(line, "%s", option)) {
            }
    }
print(option)
}

只会获得第一个单词,例如

/>> hello world

会输出

/>>你好

4 个答案:

答案 0 :(得分:0)

sscanf(..., "%s" ...

扫描在空格处终止,如果要打印整行,只需:

printf("%s", line)

答案 1 :(得分:0)

#include <stdio.h>

int main(){
    char option[64],line[256];

    printf(">>");
    if(fgets(line, sizeof(line), stdin)) {
        if (1 == sscanf(line, "%[^\n]%*c", option)) {//[^\n] isn't newline chars
             printf("%s\n", option);
        }
    }
    return 0;
}

答案 2 :(得分:0)

您可以使用scanf中允许匹配空格的格式。看看@BLUEPIXY good anwser。

或者,您可以使用getline()。更多信息here

答案 3 :(得分:0)

您可以尝试以下代码段:

char dump, string[40];
printf("Enter the sentece with spaces:\n");
scanf ("%[^\n]", string);
scanf("%c", &dump);
printf ("You entered: %s", string);

getchar();
getchar();