重新启动程序后如何不删除.TXT文件的内部

威威

我已经学习C了1周,从我所学到的知识开始,直到现在,我决定制作一个程序,该程序将有关一个人的信息存储在.TXT文件中(例如,号码,姓氏,姓氏等),但是能够要输入任何信息,您必须首先创建一个密码(或什至超过1个),然后登录。所有这些密码都保存到PASSWORDS.TXT,当您要登录并输入密码时,它将扫描文件并比较密码和如果输入的密码在那里,则可以继续,否则将关闭程序。

现在这是我面临的问题:

在我重新启动该程序后,删除了前一个密码中的每个密码(它们都被重写了),名称和已在该程序中输入的所有这些信息也发生了同样的情况。是否有任何功能/或者甚至重新启动后如何存储所有功能的方法?对不起,我的英语不好和解释能力不好,这不是我的母语,我试图在Google上搜索它,但我听不懂,或者不是我要找的情况。

一个例子 :

PASSSORDS.TXT第一次:

123456 342478 asdds45789 145vwrf

关闭程序并重新启动后,然后创建新密码(例如new123 asd456),PASSWORDS.TXT内部看起来像

PASSWORDS.TXT第二次:

new123 asd456

我将非常感谢您提供的任何指南。

#include <stdio.h>
#include <string.h>

void emptyBuffer() {
    char c = 'a';
    while (c != '\n' && c != EOF) {
    c = getchar();
}

return;
}

int main()
{
FILE *fw, //na zapis
     *fr; //na citanie
char heslo[256],heslo2[256];
int c,p,i,dlzka,index,j,cislo,konec = 0,pocet = 0; //pocitadla
char buffer[1024],string[10];

 printf("Toto je program na vytvorenie pristupoveho hesla\n\n");
fw = fopen("C:/Users/Marek/Desktop/HESLA.TXT","w"); 

do {
printf("Enter your password: ");
scanf("%s",&heslo);
emptyBuffer();
fprintf(fw,"%s ",heslo);
printf("Do you want to create another password?A/N");
c = getchar();
} while (( c == 'a') || ( c == 'A'));

fclose(fw);
printf("Now you can log in with your created passwords\n\n");
fr = fopen("C:/Users/Marek/Desktop/HESLA.TXT","r");
printf("Zadaj prihlasovacie heslo: ");
scanf("%s",&heslo2);
dlzka = strlen(heslo2);

while ((c = fgetc(fr)) != EOF)
    pocet++;

fclose(fr);
fr = fopen("C:/Users/Marek/Desktop/HESLA.TXT","r");


while (fscanf(fr, " %1023[^\n]", buffer) != EOF)
{
}

for (i = 0; i <= pocet; i++){
            if (heslo2[0] == buffer[i]){
                index = i+1;
                p = 1;
                for (j = 1;j < dlzka; j++ ){
                    if (heslo2[j] == buffer[index]) {
                        index++;
                        p++;
                    }
                    else
                        break;

                }
            if (p == dlzka && buffer[index] == ' ')
                konec = 1;
            else
                konec = 0;
            }
}

fclose(fr);

if (konec == 1){

    if ((fw = fopen("C:/Users/Marek/Desktop/UDAJE.TXT", "w")) == NULL) {  //      test suboru 
    printf("Subor UDAJE.TXT sa nepodarilo otvorit\n");
    return 1;
    }

    printf("\nYou were sucsesfully loged in\n");
    printf("Here you can enter datas\n");

    int index1 = 0;

    do {
        index1++;
        printf("Enter your name: ");
        scanf("%s", &string);
        fprintf(fw, "%d\n%s\n",index1, string);
        printf("Enter your number: ");
        scanf("%d",&cislo);
        fprintf(fw, "%d\n",cislo);
        printf("If u wanna add more datas press a/A otherwise press N: ");
        emptyBuffer();
        c = getchar();
    } while (( c == 'a') || ( c == 'A'));

 if (fclose(fw) == EOF)  // test uzavretia suboru
     printf("Subor UDAJE.TXT sa nepodarilo zavret\n");  
}
else
    printf("You have entered an invalid password");






return 0;

}

使用我的语言,部分旧代码很快就会将其翻译成英语。

依卡瓦娜(IKavanagh)

问题是您使用打开文件fw = fopen("C:/Users/Marek/Desktop/HESLA.TXT","w");如果您要打开的文件已经存在,这将删除其中的内容,并从文件开头重新开始写入。您想要更改"w""a",该值将追加到文件末尾,并且保持原文件中的内容不变。

参考资料包括更多信息和有关文件打开模式的便捷表格。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Windows上重新启动后如何删除临时文件?

来自分类Dev

如何读取项目内部的文件txt?

来自分类Dev

删除单个文件,重新启动后返回

来自分类Dev

重新启动后如何保留我的文件?

来自分类Dev

如何设置cronjob或unit文件在重新启动后运行

来自分类Dev

如何在一定时间后自动删除日志并重新启动填充日志文件的过程?

来自分类Dev

错误后重新启动python文件

来自分类Dev

错误后重新启动python文件

来自分类Dev

重新启动后〜/ .bashrc文件丢失

来自分类Dev

重新启动模拟器后,添加的新视频文件将被删除

来自分类Dev

重新启动Ubuntu后出现Deluge错误(我需要删除2个文件)

来自分类Dev

Inno Setup:在卸载过程中重新启动后删除文件夹

来自分类Dev

重新启动Ubuntu后出现Deluge错误(我需要删除2个文件)

来自分类Dev

重新启动后如何防止重新创建“标准文件夹”?

来自分类Dev

重新启动应用程序后,无法在设备中找到保存的文件

来自分类Dev

重新启动后,iOS应用程序无法访问下载的文件-UUID更改

来自分类Dev

linux / tmp文件夹+如何知道重新启动后或一段时间后文件是否将被删除

来自分类Dev

linux / tmp文件夹+如何知道重新启动后或一段时间后文件是否将被删除

来自分类Dev

用Chef部署War文件后如何重新启动tomcat?

来自分类Dev

用Chef部署War文件后如何重新启动tomcat?

来自分类Dev

更改配置文件后重新启动或不重新启动

来自分类Dev

更改配置文件后重新启动或不重新启动

来自分类Dev

在内部重新启动Ruby程序

来自分类Dev

重新启动后,必备安装程序(setup.exe)导致“无法找到应用程序文件[file] .msi”

来自分类Dev

如何在Webstorm中设置文件监视程序以重新启动Node.js?

来自分类Dev

如何基于日志文件中的重复错误重新启动Windows程序

来自分类Dev

重新启动后Windows 8.1缺少字体文件

来自分类Dev

保存并重新启动后恢复gedit文件

来自分类Dev

在关机或重新启动时删除文件夹

Related 相关文章

  1. 1

    在Windows上重新启动后如何删除临时文件?

  2. 2

    如何读取项目内部的文件txt?

  3. 3

    删除单个文件,重新启动后返回

  4. 4

    重新启动后如何保留我的文件?

  5. 5

    如何设置cronjob或unit文件在重新启动后运行

  6. 6

    如何在一定时间后自动删除日志并重新启动填充日志文件的过程?

  7. 7

    错误后重新启动python文件

  8. 8

    错误后重新启动python文件

  9. 9

    重新启动后〜/ .bashrc文件丢失

  10. 10

    重新启动模拟器后,添加的新视频文件将被删除

  11. 11

    重新启动Ubuntu后出现Deluge错误(我需要删除2个文件)

  12. 12

    Inno Setup:在卸载过程中重新启动后删除文件夹

  13. 13

    重新启动Ubuntu后出现Deluge错误(我需要删除2个文件)

  14. 14

    重新启动后如何防止重新创建“标准文件夹”?

  15. 15

    重新启动应用程序后,无法在设备中找到保存的文件

  16. 16

    重新启动后,iOS应用程序无法访问下载的文件-UUID更改

  17. 17

    linux / tmp文件夹+如何知道重新启动后或一段时间后文件是否将被删除

  18. 18

    linux / tmp文件夹+如何知道重新启动后或一段时间后文件是否将被删除

  19. 19

    用Chef部署War文件后如何重新启动tomcat?

  20. 20

    用Chef部署War文件后如何重新启动tomcat?

  21. 21

    更改配置文件后重新启动或不重新启动

  22. 22

    更改配置文件后重新启动或不重新启动

  23. 23

    在内部重新启动Ruby程序

  24. 24

    重新启动后,必备安装程序(setup.exe)导致“无法找到应用程序文件[file] .msi”

  25. 25

    如何在Webstorm中设置文件监视程序以重新启动Node.js?

  26. 26

    如何基于日志文件中的重复错误重新启动Windows程序

  27. 27

    重新启动后Windows 8.1缺少字体文件

  28. 28

    保存并重新启动后恢复gedit文件

  29. 29

    在关机或重新启动时删除文件夹

热门标签

归档