在C中打开并读取文件

时间:2012-12-12 21:16:44

标签: c

我试图在C中打开一个文件,但我总是得到它无法打开文件。我有以下代码:

        int i = 0;
        char delims[] = " ";
        char *result = NULL;
        char * results[10];
        result = strtok( cmdStr, delims );
        while( result != NULL ) {
            results[i] = result;
            i++;
            result = strtok(NULL, " ");
        }

        printf(results[1]); // it defo shows the name file here

        FILE *fp;
        char ch;

        if((fp = fopen(results[1],"r")) == NULL) {
            printf("Cannot open file.\n");
        } else {

        while((ch = fgetc( fp )) != EOF) {
            printf("%c", ch);
        }
        }
        fclose(fp);

结果[1]是文件的名称。因此,如果我有“show file.txt”之类的内容,结果[0]将显示,结果[1]为file.txt。

然而它并没有在fopen上打开它。但是,如果我在代码fopen("file.txt", "r")中插入...就可以了。

1 个答案:

答案 0 :(得分:2)

我最好的猜测是results[1]在最后包含一个迷路换行符。正如丹尼尔和杰瑞所建议的那样,一个廉价的解决办法就是在分隔符数组中加入\n


无关:ch的类型应为int而不是char