我正在使用 fscanf 从 CSV 文件中读取一些值,并且我想确保读入这些值的数据不会太大而导致缓冲区溢出。
我的 csv 文件具有 int,string,string 格式,我要读取的代码如下(稍后我将修复 while 条件):
while(fscanf(f, "%d,%[^,],%[^,]", &inArray[i].ID, inArray[i].label, inArray[i].brand)/*insert while condition here*/
使用 scanf 时,我会像这样指定长度以防止溢出:scanf("%20f", example);
但是,如果我尝试与上述相同: while(fscanf(f, "%d,%20[^,],%10[^,]", &inArray[i].ID, inArray[i].label, inArray[i].brand)/*insert while condition here*/
代码执行时我会崩溃。