gpt4 book ai didi

c - 使用 fscanf 在读完一个句子后不读入 logn 空行

转载 作者:太空宇宙 更新时间:2023-11-04 03:36:22 27 4
gpt4 key购买 nike

while((fscanf(datafile, " %127[^;] %[^\n]", name, movie)) == 2) {   
printf("%s\n", movie);
for(i=0; i<=strlen(movie); i++) {
if(movie[i]!='\0'){
printf("%c", movie[i]);
} else {
printf("44 %d", i);
break;
}
}
printf("%d\n", strlen(movie));
break;
insert_tree(tree, name, movie);
}

我有这个代码fscanf 读入分号后的所有字符串,但它也会在文件中的一个句子结束后读入长空格

我怎样才能让这个停在正确的点??

最佳答案

不能。要读取包含空格的行,但在行以空格结尾时停止,需要知道尾随空格存在而不读取它们。

相反,读取该行并对其进行后处理。

char buf[127+1+1];
fgets(buf, sizeof buf, stdin);
buf[strcspn(buf, "\n")] = '\0'; // Drop potential \n

// get rid of trailing ' '
/// This is inefficient, but shown for simplicity - certainly OP can do better.
char *p;
while ((p = strrchr(buf, ' ')) != NULL) *p = '\0';

关于c - 使用 fscanf 在读完一个句子后不读入 logn 空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32372703/

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