Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 通过在命令行中设置名称来读取文件_C - Fatal编程技术网

C 通过在命令行中设置名称来读取文件

C 通过在命令行中设置名称来读取文件,c,C,在C中逐字读取文本文件但将文件名定义为命令行变量的最佳方法是什么 我想将文件名定义为一个参数,然后逐行读取它。目前,它在文件中硬编码为字符串 int main() { FILE *fp; char str[MAXCHAR]; char* filename = "c:\\temp\\test.txt"; fp = fopen(filename, "r"); if (fp == NULL){ printf("Could not open fil

在C中逐字读取文本文件但将文件名定义为命令行变量的最佳方法是什么

我想将文件名定义为一个参数,然后逐行读取它。目前,它在文件中硬编码为字符串

int main() {
    FILE *fp;
    char str[MAXCHAR];
    char* filename = "c:\\temp\\test.txt";
    fp = fopen(filename, "r");
    if (fp == NULL){
        printf("Could not open file %s",filename);
        return 1;
    }
    while (fgets(str, MAXCHAR, fp) != NULL)
        char* text = str;
        char* key = "pangram";
        char* cipherText = Encipher(text, key, '-');
        char* plainText = Decipher(cipherText, key);
        printf("\nkey = %s",key );
        printf("\nPlain text = %s",plainText );
        printf("\nEncipher = %s",cipherText );
        printf("\n");
    fclose(fp);
    return 0;
}

您可以使用C运行时环境准备的命令行参数:

int main(int argc, char *argv[]) {
    FILE *fp;

    if (argc != 2){
        printf("Usage: %s <filename>\n", argv[0]);
        return 1;
    }

    fp = fopen(argv[1], "r");

    // the rest of your program...

    return 0;
}
intmain(intargc,char*argv[]){
文件*fp;
如果(argc!=2){
printf(“用法:%s\n”,argv[0]);
返回1;
}
fp=fopen(argv[1],“r”);
//你程序的其余部分。。。
返回0;
}

必须有数千本体面的C初学者书籍,其中包括如何从文件中读取输入的信息。互联网上可能有成千上万的教程。不要试图想出一些花哨的东西,仅仅是一些可以读取空格分隔字符串的东西,如果有其他一些要求它不能满足,那么就发布这些要求(作为一个)并包括你有问题的要求。“逐字读取文本文件”-->尝试
char-word[100];而(scanf(“%99s”,word)==1){以某种方式使用word;}
。否则,请提供更多应用程序信息。此代码与此问题有何共同之处?不要从internet上随机输入代码。问题更新为更具体的问题使用命令行参数
intmain(intargc,char**argv){…}
并以
program.exe test.txt