c++ - 如何使用 bash 将文本文件定向到 C 程序?

标签 c++ linux bash

我正在做“catwords|sign”(words是文本文件,sign是c程序)。然而,这似乎会产生无限循环。知道如何解决这个问题吗?

什么意思

sign < words | @sort > out

下面是c程序的代码。

int main(){
    char words[80];
    scanf("%s", words);
    printf(words);
    string_sort(words);
    printf(" ");
    printf(words);
    printf("\n");

    while ( words != ""){
            scanf("%s", words);
            printf("%s", words);
            string_sort(words);
            printf("%s", " ");
            printf("%s", words);
            printf("\n");
    }
 }

最佳答案

当程序到达 EOF 时,scanf() 使 words 保持不变,这会导致 words != "" 始终为 true。

您应该测试 feof(stdin),而不是测试 words

关于c++ - 如何使用 bash 将文本文件定向到 C 程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12887358/

相关文章:

c++ - test1.cpp:9:77:错误:与 ‘(const std::normal_distribution<double>) (std::mt19937&)’的调用不匹配

c++ - 包含模板的 (sdk) 类的前向声明

c++ - 双向链表复制构造函数和程序崩溃

c++ - 进程正在等待另一个进程终止时的信号处理

linux - Icecast 2 和 SSL

c++ - 模板 <typename T> 和模板 <class T> 有什么区别。对我来说,两者都产生相同的结果

python - 拆分由尾部连接的文件

php - Bash脚本通过网页拍照

linux - 如何: Progress bar in bash

bash - 如何使用 bash 更新文件行?