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';
我是一名优秀的程序员,十分优秀!