gpt4 book ai didi

c - 保存一个程序的输入

转载 作者:行者123 更新时间:2023-11-30 19:01:36 25 4
gpt4 key购买 nike

我有一个程序想法,它由两部分组成:

  1. 我想跟踪一个程序的输入并将输入保存到文件
  2. 然后将保存的输入反馈回程序中。 (我已经完成了)

简单的输入程序:testProgram.c

  1 #include <stdio.h>
2 int main() {
3 char str[100];
4 int i;
5
6 printf("Enter a value : ");
7 scanf("%s %d", str, &i);
8
9 printf("\nYou entered: %s %d\n", str, i);
10
11 return 0;
12 }

如何将一个程序的输入保存到文件(或程序)?

编辑抱歉,我的问题很不清楚。我现在明白了如何以不同的方式来理解它。我应该更清楚地表达我的要求。

大卫对我的问题的总结:“如何获取用户输入,然后将问题和答案写入程序开头的文件中,然后我可以稍后从该文件读回我的程序?”是是的,除了我不在乎保留问题,只保留答案(即输入)。我也希望它通用并且不改变我想要接收的程序来自的输入。这意味着我可以获取用户在任何程序中输入的输入,无需更改任何代码

理想行为如果我使用输入 hello1 运行上述程序,终端应该生成:

Enter a value : hello 
1

You entered: hello 1

这些输入应该记录在前一个程序的输入的outputFile中(我知道这很令人困惑)。该文件如下所示:

hello
3

最佳答案

当您执行该程序时,默认情况下将创建三个文件,例如

standard_input [file descriptor = 0 && File pointer = stdin]
standard_output [file descriptor = 1 && File pointer = stdout]
standard_error [file descriptor = 2 && File pointer = stderr]

要完成第一步:在获取用户输入之前刷新标准输入文件中的内容。

退出程序前,将文件指针移至初始位置,并将标准输入文件的所有内容复制到“input.txt”中。

第二步:稍后,要将输入从“input.txt”提供给程序,您可以使用函数 freopen()

更改程序的默认文件描述符和文件指针

假设文件“intput.txt”包含输入。

freopen("input.txt","r",stdin);

现在stdin被指向“input.txt”默认情况下,scanf将从stdin指向的文件中读取。

尝试以下程序:

#include <stdio.h>

int main() {
char str[100];
int i;
printf("Enter a value : ");
freopen("input.txt", "r",stdin);
scanf("%s %d", str, &i);
printf("\nYou entered: %s %d\n", str, i);
return 0;
}

希望以上回答对您有所帮助。

关于c - 保存一个程序的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57567269/

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