没有fopen的读文件()(C语言)
我正在学校项目中,我们必须在保存在.txt文件中的表上执行一些操作(select,min,max)。 问题是我们不能使用fopen,fscanf,fclose等常用函数。没有fopen的读文件()(C语言)
该计划将通过命令行启动这样的:.\project.exe select parameters <table.txt
你有一些想法如何让.txt文件到标准输入的内容,而无需使用的fopen? 谢谢。
你不需要打开文件 - 操作环境将为你做。
当你的程序被调用<table.txt
时,你的标准输入被切换到从该文件而不是键盘读取。您可以使用scanf
来读取数据,不必担心打开和关闭文件。
您的程序输出和>table_out.txt
重定向也是如此:您的程序中的printf
将不会打印到屏幕上,而是写入文件,该文件将在程序退出时自动关闭。当然,如果你需要在你的输出重定向到打印内容到屏幕上,你可以通过打印到stderr
(这么做如fprintf(stderr, "Invalid table format\n")
。
谢谢。我在CodeBlocks中启动程序,它不工作,因为它应该。在命令行中试过并且完美地工作 – 2014-10-18 12:46:36
有几种方法可以acomplish这一点。
阅读STDIN
我想老师要尤其在该方法的思路是读标准输入,而不是特定的文件 在C++中,你可以简单地读取标准输入对象下面是一个例子:。
#include <stdio.h>
#include <string.h>
int main(void)
{
char str[80];
int i;
printf("Enter a string: ");
fgets(str, 10, stdin);
/* remove newline, if present */
i = strlen(str)-1;
if(str[ i ] == '\n')
str[i] = '\0';
printf("This is your string: %s", str);
return 0;
}
来源:http://www.java2s.com/Code/C/Console/Usefgetstoreadstringfromstandardinput.htm
使用系统utils的
你可以称之为 “类型” UTIL @的Windows(不知道它)或 “猫” 中的util Linux作为一个子读一些partticular文件。但这是一个“黑客”,所以我不建议使用这个。
该文件被重定向到标准输入,所以他不需要打开,因为它已经打开 – Pradheep 2014-10-18 12:39:06
是不是应该是'./project select parameters
当您调用'prog
2014-10-18 12:35:21
@shekharsuman你试图问的问题是”应该不是......“。答案是“不是,如果它是Windows” – GreenAsJade 2014-10-18 12:35:27