【问题标题】:How do I access an inputed file?如何访问输入文件?
【发布时间】:2022-10-12 23:34:31
【问题描述】:

所以我有这个代码:

  #include <stdio.h>

int main(int argc, char **argv) {
    //Reassign input arguments into local values
    // Check if inputs are valid
    // translate the input string
    //assign the list into a nested string

    //search for translated string in the list
    //save all found cases
    //print all found cases

    int i = 0;
    for (i = 0; i < argc; i++) {
        printf("argv[%d] = %s\n", i, argv[i]);
    }
    printf("%d",argc);
    return 0;
}

输入后:outDebug.exe 你好 <seznam.txt进入命令提示符...

它给了我这些回报:

argv[0] = outDebug.exe

argv[1] = 你好

2

如果文件不在,文件在哪里argv?

【问题讨论】:

  • 它通过stdin 或文件描述符0 引用。
  • &lt;seznam.txt 不是 main 的 arg,而是从该文件重定向 stdin
  • 在这个以这种方式调用的程序中,您可以从stdin 中读取,并且您将从该文件中获得输入。就像您明确说出FILE *ifp = fopen("seznam.txt", "r");FILE *ifp = fopen(argv[1], "r");,然后从ifp 读取一样。
  • 类似的问题:尝试调用outDebug.exe "hello world",然后问,引号去哪儿了?
  • 重定向的全部意义在于程序不必做任何事情。它只是正常地从标准输入中读取。如果输入被重定向,它会从文件中读取。如果不是,它从终端读取。

标签: c cmd arguments program-entry-point


【解决方案1】:

如 cmets 中所述,您可以从 stdin 获取它。以 fgets 为例:

#include <stdio.h>

int main(int argc, char **argv)
{
    int i = 0;
    for (i = 0; i < argc; i++)
    {
        printf("argv[%d] = %s
", i, argv[i]);
    }
    printf("%d
",argc);

    char buffer[256];
    while(fgets(buffer, 256, stdin)) puts(buffer);

    return 0;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-26
    • 1970-01-01
    • 1970-01-01
    • 2013-05-31
    • 1970-01-01
    • 2019-11-18
    • 2015-12-10
    • 1970-01-01
    相关资源
    最近更新 更多