C 向函数发送文件指针以进行读取
我已经连续几个小时在做这件事了,我搜索了又搜索,我的代码仍然不能正常工作 如何使用C 向函数发送文件指针以进行读取,c,C,我已经连续几个小时在做这件事了,我搜索了又搜索,我的代码仍然不能正常工作 如何使用argv[]作为要读取的文件从main中的函数读取文件 #include <stdio.h> #include <stdlib.h> #include <errno.h> FILE words(FILE *filesToRead) { const char *Open; Open = (char *)filesToRead; filesToRead
argv[]
作为要读取的文件从main中的函数读取文件
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
FILE words(FILE *filesToRead)
{
const char *Open;
Open = (char *)filesToRead;
filesToRead = fopen(Open, "rt");
int line;
while ((line = fgetc(filesToRead)) != EOF)
{
printf("%c", line);
}
fclose(filesToRead);
}
int main(int argc, char *argv[])
{
char *ah = argv[];
words(ah);
return 0;
}
#包括
#包括
#包括
文件字(文件*文件存储)
{
常量字符*打开;
Open=(char*)文件存储;
filesToRead=fopen(打开,“rt”);
内线;
而((line=fgetc(filesToRead))!=EOF)
{
printf(“%c”,第行);
}
fclose(文件存储);
}
int main(int argc,char*argv[])
{
char*ah=argv[];
文字(啊);
返回0;
}
试试这个:
void words(char *filename)
{
FILE *filesToRead = fopen(filename, "rt");
/* ... */
}
int main(int argc, char *argv[])
{
if (argc > 1)
words(argv[1]);
return 0;
}
老实说(请不要生气),你的代码看起来好像跳过了你正在使用的C语言书中的几章。试试这个:
void words(char *filename)
{
FILE *filesToRead = fopen(filename, "rt");
/* ... */
}
int main(int argc, char *argv[])
{
if (argc > 1)
words(argv[1]);
return 0;
}
老实说(请不要生气),你的代码看起来好像跳过了你正在使用的C语言书中的几章。
argv[]
是一个char*
数组。例如,如果从命令行调用程序,则如下所示:
my_prog.exe foo bar
然后:
将为3李>argc
将指向“my_prog.exe”argv[0]
将指向“foo”argv[1]
将指向“bar”argv[2]
因此,在
main()
函数中,如果需要一个参数,则需要检查argc
的值是否为2,然后从argv[1]
中读取参数。例如,如果从命令行调用程序,则如下所示:
my_prog.exe foo bar
然后:
将为3李>argc
将指向“my_prog.exe”argv[0]
将指向“foo”argv[1]
将指向“bar”argv[2]
因此,在
main()
函数中,如果需要一个参数,则需要检查argc
的值是否为2,然后从argv[1]
hmm中读取参数。。好啊仍然会出现错误,说struct FILE*但参数的类型是char*,您的words()函数也是错误的。您需要@cnicutar的答案,我只是想帮助您了解argv[]
的工作原理。是的,非常感谢您的帮助。谢谢你,嗯。。好啊仍然会出现错误,说struct FILE*但参数的类型是char*,您的words()函数也是错误的。您需要@cnicutar的答案,我只是想帮助您了解argv[]
的工作原理。是的,非常感谢您的帮助。一切都很感激.是的.不过我似乎不能白白读完一本书。我在实践中学习得最好。是的,我似乎不能白白读完一本书。我通过实践学习得最好。