-1

我试图在 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);

Results[1] 是文件的名称。所以如果我有类似“show file.txt”的东西,结果[0]将被显示,结果[1]文件.txt。

但是它不会在 fopen 上打开它。但是如果我插入代码fopen("file.txt", "r")......它可以工作。

4

1 回答 1

2

我最好的猜测是results[1]最后包含一个杂散的换行符。正如 Daniel 和 Jerry 所建议的,一个廉价的解决方法是包含\n在分隔符数组中。


不相关:的类型ch应该是int而不是char

于 2012-12-12T21:18:55.787 回答