gpt4 book ai didi

c - 程序 "double reading"一个字符串

转载 作者:行者123 更新时间:2023-11-30 18:57:59 25 4
gpt4 key购买 nike

我需要创建一个程序来读取字符串“A = B”并在变量数组中搜索 B。如果它没有找到 B,那么它会询问它的值并将其放入另一个数组中。嗯,我不知道这个想法是否清楚,但这里有一个例子:

  while(1){
printf("Get string\n");
gets(L);


if(L[0]=='\0') break;

if(L[2] == '1') {
printf("Value of 1: ");
scanf(" %lf", &m);

}

}
printf("\nbreak");

我需要这个程序在我们输入 Enter 时停止,所以我使用了 if(L[0]=='\0') break;为了它。

我的问题是:每次我询问 B 的值时,我的程序都会读取一个“幽灵字符串”L,它不允许我输入 L 的值,并且程序会停止。几乎是双重读取字符串,但由于条件 L[0] != '\0' 而中断。我究竟做错了什么?如果我们删除这个条件,那么程序会打印 2 次“获取字符串”,而不要求我输入字符串 2 次..

最佳答案

永远不要使用gets()。这不太好。

使用fgets()相反,请注意它存储换行符。使用一些更高级别的函数(例如 sscanf() )来解析输入。同样,使用另一个 fgets() + sscanf() 组合来读取值。

关于c - 程序 "double reading"一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18741271/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com