gpt4 book ai didi

c - 在 C 中重定向输入(文本文件)

转载 作者:太空宇宙 更新时间:2023-11-04 05:34:40 25 4
gpt4 key购买 nike

所以我似乎无法重定向输入以便我的程序读取它。

它在作业中说程序不应该打印任何东西来提示用户输入。由于必须从 stdin 读取许多数字来测试您的程序,因此您应该使用 INPUT REDIRECTION 从文件读取输入。

我有这个主要功能:

int main(int argc, char const *argv[])
{
int arr[100];
for (int i = 0; i < SIZE; i++)
{
values[i] = 0;
hashMapLinear[i] = 0;
}
FILE* file = fopen("file_name.txt", "r");
int index = 0;
int k = 0;
while (!feof(file))
{
fscanf(file, "%d", &k);
arr[index] = k;
index++;
}
fclose(file);
file = fopen("file_name.txt", "r");
int i = 0;
fscanf(file, "%d", &i);
float size = i;

fscanf(file, "%d", &i);
int thresh_hold = i;

int load_factor = size / 2;
int j = 0;

if (size <= 0)
{
printf("\nSize of file can not be zero or negative integer:\n");
}
else
{
while (!feof(file))
{
if (num_keys <= load_factor)
{
int check_valid_input= fscanf(file, "%d", &i);
if (check_valid_input != 0 || check_valid_input== -1)
{
insert_into_hashtable(i, size);
}
else
{
printf("\n invalid input:\n");
exit(1);
}
}
else
{
printf("\nError in inserting more numbers:\n");
exit(1);
}
}
fclose(file);
printHashMap(arr,size, thresh_hold);
}
}

如何编辑这个主要功能,以便它重定向 seq.1 或任何其他文本文件到 C 程序?任何帮助将不胜感激!

最佳答案

只需使用 stdin而不是 file , 但不要打开 stdin , 不要关闭它。

当调用类似 ./program < seq.1 的程序时, 操作系统会传递 seq.1 的内容到您的程序,就好像它是通过控制台输入的一样。因此,使用 stdin ,代表控制台输入,将完成这项工作。

请注意 stdin默认情况下,程序启动时已经打开。

关于c - 在 C 中重定向输入(文本文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42986593/

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