c - 如何正确读取文件中的输入?

标签 c file input

INITIALIZE 100  
ALLOC 20  
ALLOC 10  
FREE 16  
ALLOC 19  
FILL 16 19 255  
FILL 48 10 127  
DUMP  
SHOW ALLOCATIONS  
ALLOC 1  
SHOW USAGE  
FINALIZE  

这是说明的示例。如果我逐行插入它们,程序就可以运行。如果我从文件中读取所有内容,则会出现段错误。从输入文件中读取它们很重要。问题可能出在哪里?澄清一下,我不需要读取程序中的文件,我需要将文件重定向到标准输入。这就是我将输入与命令进行比较的方式。

int main()

{

int n,c,d,e;

char *s, *p, init[100]="INITIALIZE", fin[100]="FINALIZE", dmp[100]="DUMP", allc[100]="ALLOC", fre[100]="FREE", fil[100]="FILL", shw[100]="SHOW", usg[100]="USAGE", alc[100]="ALLOCATIONS";

unsigned char *arena;

s=(char*)malloc(100*sizeof(char));

while (1)

{

    gets(s);

    p=strtok(s," ,.-");

    while(p!=NULL)

    {

        if(strcmp(p,init)==0)

        {

            p=strtok(NULL," .,-");

            n=atoi(p);

            arena=initialize(n); 

        }

        if(strcmp(p,fin)==0) { finalize(arena); }

        if(strcmp(p,dmp)==0) { dump(arena,n); }

        if(strcmp(p,allc)==0) 

        {

            p=strtok(NULL," ,.-");

            c=atoi(p); 

            alloc(c,arena,n); 

        }

        if(strcmp(p,fre)==0) 

        { 

            p=strtok(NULL," ,.-");

            c=atoi(p);

            freeb(arena,c); 

        }

        if(strcmp(p,fil)==0) 

        { 

            p=strtok(NULL," ,.-");

            c=atoi(p);      

            p=strtok(NULL," ,.-");

            d=atoi(p);

            p=strtok(NULL," ,.-");

            e=atoi(p);

            fill(arena,c,d,e);

        }

        if(strcmp(p,shw)==0) 

        { 

            p=strtok(NULL," ,.-");

            if(strcmp(p,fre)==0) { showfree(arena,n); }

            if(strcmp(p,usg)==0) { showusage(arena,n); }

            if(strcmp(p,alc)==0) { showallocations(arena,n); }

        }

        p=strtok(NULL," ,.-");

    }

}

return 0;

}

最佳答案

您可以在发布此类问题之前进行基本搜索。无论如何,如果您正在寻找使用 C 程序打开、读取、写入和关闭文件的代码片段/示例程序,请查看 here

关于c - 如何正确读取文件中的输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8575184/

相关文章:

Python String 到列表处理

c - 保存/复制文件指针/描述符

java - 我不确定应该使用导入的 IO 类中的哪个输入

android - 输入文件在 facebook 的内部浏览器中不起作用,有什么解决办法吗?

c++ - 使用C或C++打印调用堆栈

C 命令行参数

c - 使用C从txt文件中获取具体数据

c - feof() 函数和 C 中文件的 EOF 有什么区别?

swift - 使用阿拉伯语键盘的 TextField 数字输入

c - 当 long-double 计算器失去精度时?