[英]Reading file when compiling
我正在研究一個程序,這是我無法理解的。 我有一個帶參數的主函數:
int main(int argc, const char *argv[]){
FILE *file;
file=fopen(argv[1], "r");
if( file == NULL )
{
perror("Error while opening the file.\n");
exit(EXIT_FAILURE);
}
我如何閱讀argv[1]
文件。 當我編譯它時,錯誤顯示為無效參數。 如何打開文件以便打印隱藏的內容? 我正在使用代碼塊。
argv [1]引用用戶在命令行上傳遞的第一個參數。 argv [0]指的是文件本身。 所以在你的情況下,程序將打開作為第一個參數傳遞的文件。
./myprogram myfilename.txt
此外,您對程序本身存在一些問題。
#include <stdio.h> /* Library needed for input/output*/
#include <stdlib.h> /* needed for the exit calls*/
int main(int argc, const char *argv[]){
FILE *file;
file=fopen(argv[1], "r");
if( file == NULL )
{
perror("Error while opening the file.\n");
exit(1);
}
return 0;
}
這顯然現在沒什么用,但它會讓argv1打開。 另外,我將exit(EXIT_FAILURE)改為exit(1)。 它們大多是同義詞,但exit(1)不需要編譯器標志(-std = c99)。 EXIT_FAILURE被認為更便攜 - EXIT_FAILURE vs exit(1)? - 但為了簡單起見,我將其更改為退出(1)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.