c - 从文件 txt 中分割字符串

标签 c file scanf

C 程序在找到 ! 时必须分割字符串!或者 ?或者 。 该字符串必须包含\n 换行符和 !或者 ?或者 。它存在的地方。文件 test.txt 的示例

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?

我的代码读取到第一个标记,我错在哪里?

int main(){
    FILE *file;
    char stringa[MAXCHAR];

    file = fopen ("prova.txt", "r");
    if (file == NULL){
        perror("errore nell'apertura del file");
        return (1);
    }
    while (fscanf(file, "%[^!?.]", stringa) != EOF) {
        printf("Data from file:\n%s", stringa);
        //break; 
    }
    fclose(file);

    return 0;
}

我的输出:

Lorem ipsum dolor sat amet,consectetur adipisicing elit,sed do eiusmod tempor incididunt ut Labore et Dolore Magna aliqua

感谢您的帮助...

最佳答案

它退出是因为您在输入中发现 .?! 时立即使用了 break .
我相信您想要的是将输入流中的这三个字符替换为 \n
如果是这种情况,则将 break 替换为 printf("\n")

关于c - 从文件 txt 中分割字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34639999/

相关文章:

c - scanf() 迭代未知数量的整数

比较C中的2个子串

c - 为什么插件动态库在应用程序中找不到符号?

java - 无法写入特定格式的文件

c++ - 在 Eclipse CDT 中读取/写入文件的目录有问题

c - 从 .txt 文件中读取数字并将它们存储在 C 中的数组中

c - fscanf 不读取包含星号字符的文件

C语言 : Getting Segmentation fault on Declaring an array

使用 gets 函数时代码块停止工作

c - 什么时候使用 &?