【发布时间】:2021-10-23 23:05:00
【问题描述】:
输入: 输入姓名:Arun kumar 输入txt:我擅长编程!我想!
我只是尝试获取名称和文本。喜欢,
char *ch[2]; \\I tried changing it to char ch[20] for name and
ch[100] for text
printf("Enter name:");
fgets(ch[0],20,stdin);
printf("Enter text:");
fgets(ch[1],100,stdin);
但它不能正常工作。代码在运行程序时停止工作。还建议最好的方法。
【问题讨论】:
-
试试
char ch[2][100];如果你想把两个字符串放在同一个(2D)数组中,那么它们的大小必须相同(最大)。 -
是的,当我尝试作为单独的代码时它工作正常。
-
但是当我使用插入代码时,它直接用于第二个 fgets 为什么!
-
目前还不清楚您要问什么,以及您的预期输出和所需的程序结构应该是什么。请尝试澄清问题,并提供Minimal, Reproducible Example。
-
char *ch 2 是两个指向未初始化内存的指针;将它们传递给
fgets会导致未定义的行为。 Otoh,char ch 2 100 导致更多空间被保留;fgets使用空格来填充输入。
标签: arrays c string char fgets