gpt4 book ai didi

c - 用`scanf()`读取逗号分隔的输入

转载 作者:行者123 更新时间:2023-11-30 16:17:41 24 4
gpt4 key购买 nike

我有以下输入:

AG23,VU,Blablublablu,8
IE22,VU,FooBlaFooBlaFoo,3
and so on...


我希望它使用类似以下代码的 scanf()“解析”:

char sem[5];
char type[5];
char title[80];
int value;

while(scanf("%s,%s,%s,%d", sem, type, title, &value) == 4) {
//do something with the read line values
}


但是代码的执行给了我: illegal instruction

您将如何读取以逗号分隔的文件?

最佳答案

逗号不被视为空格字符,因此格式说明符"%s"将占用,,并且行上的所有其他内容均超出数组sem的范围,从而导致未定义的行为。要更正此问题,您需要使用扫描集:

while (scanf("%4[^,],%4[^,],%79[^,],%d", sem, type, title, &value) == 4)


哪里:


%4[^,]表示最多可以读取四个字符或直到遇到逗号为止。


指定宽度可防止缓冲区溢出。

关于c - 用`scanf()`读取逗号分隔的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56212001/

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