c - 保存到外部文件,C

标签 c file character external

这是我的代码

            #include<stdio.h>
            #include<stdlib.h>
            #include"boolean.h"

           /*
            boolean ceksama(char c[20])
            {

              FILE *f;
              int retval;
              boolean same=false;
              char ccarray[20];
              int i,j;
              char cc;

            f=fopen("filepelanggan.exe","r");

            j=0;
            while(c[j]!='\0')
             {
                j=j+1;
             }

            retval=fscanf(f,"%c",&cc);
            while((retval!=EOF)&&(!(same)))
             {
                i=1;
                while(cc!='\0');
                  { 
                     retval=fscanf(f,"%c",&cc);
                     ccarray[i]= cc;
                     i=i+1;
                  }

                if(i!=j)
                  {
                      same=false;
                  }
                else
                  {
                      if(ccarray[i]=c[j])
                            {
                            same=false;
                        }
                      else
                        {
                             same=true;
                        }
                  }
            }

            fclose(f);
            return same;
            }

            */

            int main()
            {

              FILE *f;
              char nama[20];
              int retval;
              char c;
              int i=1;


            /*algoritma*/
            f=fopen("customerfile.txt","a");

            printf("\nenter your name:");
            scanf("%c",&c);

            /*
            if (!(ceksama))
            {*/

            while (c=='\n')
              {
                 scanf("%c",&c); 
              }

                            while (c!='\n')
              {
                  nama[i]=c;
                  i=i+1;
                  scanf ("%c",&c);
              }
            nama[i]=c;
            i=1;

                            while(nama[i] != '\n')
              {
                  retval=fprintf(f,"%c",nama[i]);
                  i=i+1;
              }
            fprintf(f,"%c",'\0');
            fprintf(f,"%c",'\n');

            /*}
            else
              {
                  printf("data has been registered");
               }*/
            fclose(f);

            }

在我的代码中,我想输入一个名称并将其保存到外部文件中,以供以后输入名称时检查该名称是否已存在于外部文件中

main 是我的主程序,上面是检查名称是否已经存在的函数。但是,我在注释模式下创建了检查功能,以便程序可以正常运行。

问题是,当我激活检查功能时,程序仍然可以运行 但 每次我尝试输入任何名称,无论是否已注册,它总是说已注册,因此,我无法将该名称存储在外部文件中

当我停用检查功能(进入评论模式)时,程序正常工作,它将名称存储到外部字符。但是没有检查该名称是否已经存在。因此,该名称可能会被存储两次或更多次。

我编写这个程序的算法是,当输入名称时,它会按字符读取(因为我的老师禁止我们使用 string 或 string.h)。因此我必须按每个字符将它存储到外部文件。查的时候我也是按字符查的,但是也没用

我声明了我自己的boolean.h

最佳答案

要比较ccarrayc,您应该使用strcmp。实际上,您甚至不是在进行比较,而是在进行赋值(“=”而不是“==”)。 我说的是线:

if(ccarray[i]=c[j])

应该是:

if (strcmp(ccarray, c))

如果我很了解你的算法。

关于c - 保存到外部文件,C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13564820/

相关文章:

python - 打印有效,书写无效。怎么会?

python:无法从 Windows 上的 os.execl'd python 脚本中删除打开的文件

file - 我是否在某处读到过 C++/CLI 让我们走向一个 "header-file"更少的社会,比如 Java

unicode - 圆圈中的感叹号的字符代码是什么?

encoding - 它是什么字符编码?

c - 使用 gstreamer 修改窗口大小

c - C中当前进程的内存使用情况

c - 在 C 中为套接字编写 send_all 和 recv_all 函数

objective-c - 枚举自定义 : Is it possible to create subEnum?

android - 如何在 Android 应用程序中显示瑞典语字符?