【问题标题】:How can I open a file in C?如何在 C 中打开文件?
【发布时间】:2022-01-04 21:20:28
【问题描述】:

程序读取指定为命令行参数的文件的内容。如果当前参数导致错误(无法打开文件),则将错误消息写入标准错误输出并使用以下参数继续执行。错误信息应该是:文件打开失败!。

#include <stdio.h>

int main() {

  
    char name[1024];

    scanf("%s",name);
    FILE* fp = fopen("name.txt", "r");
    if (fp !=0 ){
        printf("Open is successfull");
    } else {
        printf("File opening unsuccessful! \n");
    }
    fclose(fp);


}

【问题讨论】:

  • 这能回答你的问题吗? C - reading command line parameters
  • 您没有使用输入提供的名称!这将有助于提供有用的错误消息。例如fp = fopen(name, "r"); if( fp == NULL ){ perror(name); }
  • 这个问题有矛盾。首先你说你想给名字scanf,然后问题描述说你应该提供名字作为命令行参数。是哪个?
  • 那么命令行参数是什么意思?我还以为是scanf呢。
  • @topi12 查看 cmets 中的第一个链接以获取命令行参数。回复 cmets 的时候也要使用@符号,否则人是看不到的。

标签: c file


【解决方案1】:

您不想使用 scanf 从标准输入读取,您需要使用问题中列出的命令行参数。

C - reading command line parameters

#include <stdio.h>

int main(int argc, char *argv[]) {
    if (argc != 2) {
        fprintf(stderr, "%s\n", "Incorrect number of arguments");
        return 1;
    }

    FILE* fp = fopen(argv[1], "r");
    if (fp !=0 ){
        printf("File opening successful !\n");
        fclose(fp);
    } else {
        fprintf(stderr, "%s\n", "File opening unsuccessful !");
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-30
    • 2021-07-15
    • 2010-10-05
    相关资源
    最近更新 更多