【问题标题】:strange behavior when trying to read a file尝试读取文件时的奇怪行为
【发布时间】:2022-01-04 16:10:42
【问题描述】:
if(argc==1){    
    } else if(argc==2){
        FILE *f=fopen( argv[1],"r");

        if(!(f==NULL)){
            jogada='x';
            while(countblank(board)!=0 || (checkmoves(board,jogada)>0)){
                fscanf(f,"%d%c",&fline,&fcol_char);
                fcol=fcol_char-'A';
                fline--;

                play(board,fline,fcol,jogada);
                jogada=opcolor(jogada);
                if(fgetc(f)==EOF){
                    break;
                }
            }
            fclose(f);
            print_board(board);
        }
        else{
        printf("\nFicheiro não foi lido\n");
        }
    }

我使用 gcc,当我使用 ./othello_func jogadas.txt 时,它应该读取文件 jogadas.txt 中的剧本,其中包含类似的内容

4C
3E

但是当我执行./othello_func jogadas.txt 时,它只会向我显示来自其他人的消息。

【问题讨论】:

  • “来自其他人的消息”是指"\nFicheiro não foi lido\n"
  • @L1nK 该文件是否真的存在于您认为的位置?是不是和othello_func在同一个目录下?
  • 更确切地说,jogadas.txt 文件在当前目录中是什么?当您使用 IDE 时,当前目录通常不是您所期望的...
  • 在 else 块中运行 perror()
  • 这是一个非常清晰的错误信息。

标签: c file


【解决方案1】:

当我执行 ./othello_func jogadas.txt 时,它只会显示来自 else 的消息。

  • 程序“othello_func”和“jogadas.txt”不在同一个文件夹中。 OP reports they are 但可能会弄错从哪个文件夹代码运行。

  • 文件“jogadas.txt”无法读取 - 可能正被其他程序(如编辑器)使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-19
    • 2012-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多