无法从文本文件中读取数据。

时间:2016-03-07 19:12:01

标签: c xcode io text-files scanf

我在查找我想要阅读的文本文件的位置时遇到问题。我将它存储在与可执行文件相同的目录中,但它仍然没有读取文件。经过多次挖掘和搜索后,我发现问题与"派生数据有关。在Xcode中。当我查找源文件时,通过右键单击main.c文件并在finder中找到该文件,我发现它位于Derived Data中。每当我运行这个程序时,它会创建一些派生数据(Xcode应该这样做)但我的.c文件存储在这个派生数据中,当我尝试将文本文件存储在可执行文件所在的同一位置时(同一个地方) .c文件位于)我无法读取文件。

建议?

想法?

帮助..

#include <stdio.h>
    #include <unistd.h>
    extern int errno;
    int main (void){
        int term;
        long long StudentID;
        char lastname [16];
        char firstname[16];
        char subject[4];
        int catalog;
        char  section[4];
        char  filename [9];
        FILE *cfPtr;
        printf("Enter file name: ");
        scanf("%s",filename);
        /*
         char cwd [1024];
         if (getcwd(cwd, sizeof(cwd)) != NULL)
         fprintf(stdout, "Current working dir: %s\n", cwd);
         */
        system("pwd");
        if((cfPtr=fopen(filename,"r"))==0){
            //printf("%s jlk",strerror(errno));
            printf("File could not be opened\n");
        }
        else{
            printf("%-35s%-10s%-10s%-10s%-10s\n","Last Name, First Name","Term","ID","Course","Section");
            int i;
            for(i=0; i<75; i++){
                printf("-");
            }
            fscanf(cfPtr,"%d%lld%s%s%s%d%s",&term,&StudentID,lastname,firstname,subject,&catalog,section);
            while(!feof(cfPtr)){
                printf("%-35s%-10s%d%lld%-10s%-10s\n", lastname, firstname,term,StudentID,subject,section);
                fscanf(cfPtr,"%d%lld%s%s%s%d%s",&term,&StudentID,lastname,firstname,subject,&catalog,section);
            }

            fclose(cfPtr);

        }
        return 0;
    }

1 个答案:

答案 0 :(得分:-1)

如果您在Xcode中设置了“命令行工具”项目,则可以按如下方式设置工作目录。首先单击Xco​​de窗口顶部的项目名称,然后选择“Edit Scheme ...”

enter image description here

然后选择左侧的“运行调试”并更改右侧的“工作目录”。

enter image description here

另一种方法是下载命令行工具(首选项/下载)。然后,您可以打开一个终端窗口,并从命令行编译/运行。