gpt4 book ai didi

C循环读取输入行

转载 作者:太空狗 更新时间:2023-10-29 15:21:15 24 4
gpt4 key购买 nike

我想在 C 中创建一个程序,该程序将任意长度的任意数量的行作为输入,然后打印以控制台输入的最后一行。例如:

输入:

hi
my name is
david

输出:david

我认为最好的方法是有一个循环,将每一行作为输入并将其存储在一个 char 数组中,因此在循环结束时,最后一行最终成为存储在 char 中的内容数组,我们可以打印它。

到目前为止,我只听过一次 C 语言的讲座,所以我认为我一直在用我的 Java/C++ 思维方式设置错误,因为我在这些语言方面有更多的经验。

这是我目前所知道的,但我知道它远不正确:

#include <stdio.h>

int main()
{
printf("Enter some lines of strings: \n");

char line[50];

for(int i = 0; i < 10; i++){
line = getline(); //I know this is inproper syntax but I want to do something like this
}

printf("%s",line);


}

我还有i < 10在循环中,因为我不知道如何找到输入中的总行数,这将是循环这个的适当次数。此外,输入是从

./program < test.txt 

Unix shell 中的命令,其中 test.txt有输入。

最佳答案

使用fgets():

while (fgets(line, sizeof line, stdin)) {
// don't need to do anything here
}
printf("%s", line);

您不需要限制迭代次数。在文件末尾,fgets() 返回 NULL 并且不修改缓冲区,因此 line 仍将保留最后一行已阅读。

关于C循环读取输入行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52668128/

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