我想从给定的输入文件中逐行读取,处理每一行(即它的单词),然后继续前进到其他行...
所以我使用fscanf(fptr,"%s",单词)来读取单词,它应该在遇到行尾时停止...
但这在fscanf中是不可能的,我猜...所以请告诉我如何做的方式......
我应该读取给定行中的所有单词(即应该遇到行尾)以终止然后继续到其他行,并重复相同的过程.
使用fgets().是的,链接是cplusplus,但它起源于c stdio.h.
您也可以使用sscanf()从字符串中读取单词,或者只是strtok()将它们分开.
回应评论:这种行为fgets()(留\n在字符串中)允许您确定是否遇到了实际的行尾.注意,fgets()如果提供的缓冲区不够大,那么也可能只读取文件中的部分行.在您的情况下 - \n如果您不需要,只需检查最后并将其删除.像这样的东西:
// actually you'll get str contents from fgets()
char str[MAX_LEN] = "hello there\n";
size_t len = strlen(str);
if (len && str[len-1] == '\n') {
str[len-1] = 0;
}
Run Code Online (Sandbox Code Playgroud)
就那么简单.