C 在数据结构中存储字符串

C 在数据结构中存储字符串,c,data-structures,C,Data Structures,我想创建一个程序,从用户那里接收一些输入字,将输入存储在数据结构中,然后将数据结构打印到txt文件中 现在我只构建了接收一些输入并将它们存储在数据结构中的部分,然后我添加了一个printf来打印数据结构,只是为了测试 问题是,如果我在char“one”上输入“test_one”,它将打印“test_one”,但如果我输入“test one”,它将只打印“test”。 如何编辑它以使其存储整个单词而不是仅存储一个单词?我可以用指针吗 #include <stdio.h> struct

我想创建一个程序,从用户那里接收一些输入字,将输入存储在数据结构中,然后将数据结构打印到txt文件中

现在我只构建了接收一些输入并将它们存储在数据结构中的部分,然后我添加了一个printf来打印数据结构,只是为了测试

问题是,如果我在char“one”上输入“test_one”,它将打印“test_one”,但如果我输入“test one”,它将只打印“test”。 如何编辑它以使其存储整个单词而不是仅存储一个单词?我可以用指针吗

#include <stdio.h>

struct inputs {
   char one[30];
   char two[30];
   char three[30];     
};

int main(void)
{  

   struct inputs inputs = {"", "", ""};
   scanf("%s%s%s", inputs.one, inputs.two, inputs.three);

   printf("\n%s;%s;%s\n", inputs.one, inputs.two, inputs.three);


   } 
} 
#包括
结构输入{
char-one[30];
char-two[30];
char-three[30];
};
内部主(空)
{  
结构输入输入={“”,“”};
scanf(“%s%s%s”,inputs.1,inputs.2,inputs.3);
printf(“\n%s;%s;%s\n”,inputs.1,inputs.2,inputs.3);
} 
} 
使用标准“%s”的scanf将只读取输入,直到输入达到空白。请尝试阅读以下内容,直到出现新行:

scanf("%[^\n]s", inputs.one);
scanf("%[^\n]s", inputs.two);
scanf("%[^\n]s", inputs.three);

非常感谢。我只知道gets,不知道fgetsOne一个问题:为什么它只需要一个输入?它只运行第一个scanf,将忽略其他两个scanf