8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

字符信息保存为奇怪的字母

frfernandezdev 2月前

98 0

我正在尝试编写可以在 .txt 文档中插入、查阅和删除任何信息的代码,但是当我在 C 控制台上插入信息时,每条信息都保存为奇怪的字母和符号......

我正在尝试编写可以插入、查阅和删除文档中任何信息的代码 .txt ,但是当我在 C 控制台上插入信息时,每条信息都保存为这样的奇怪的字母和符号:

                        Q(@     `$@     1       P            ÿÿÿÿÿÿÿÿ1           
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct Dados
{
    char ID[2];
    char NOME[50];
    char EMAIL[50];
    char TELEFONE[14];
    char STATUS[1]; 
} Dados;

Dados GetDados()
{
    Dados dados;
    system("cls");
    printf("\n\nDigite o ID: ");
    scanf("%s", dados.ID);
    
    printf("\n\nDigite seu primeiro nome: ");
    scanf("%s", dados.NOME);
    
    printf("\n\nDigite o Email: ");
    scanf("%s", dados.EMAIL);
    
    printf("\n\nDigite o Telefone: ");
    scanf("%s", dados.TELEFONE);
    
    rewind(stdin);
    return dados;
}


void ConsultarPorID(char ID[]) {
    FILE * arq;
    Dados dados;
    int encontrou = 0;

if ((arq = fopen("c:\\pastadados\\newdados.txt", "r")) == NULL) {
    printf("Erro ao abrir o arquivo.\n");
    return;
}
while (fscanf(arq, "%s%s%s%s", dados.ID, dados.NOME, dados.EMAIL, dados.TELEFONE) != EOF) {
    if (strcmp(dados.ID, ID) == 0) {
        printf("\n\tId: %s\n", dados.ID);
        printf("\tNome: %s\n", dados.NOME);
        printf("\tEmail: %s\n", dados.EMAIL);
        printf("\tTelefone: %s\n", dados.TELEFONE);
        encontrou = 1;
    }
}
if (!encontrou) {
    printf("Nenhum rsegistro encontrado com o ID '%s'.\n", ID);
}
fclose(arq);
}


int main()
{
    FILE * arq;
    Dados dados;
    char ID[2];
    char NOME[50];
    char EMAIL[50];
    char TELEFONE[14];
    char STATUS[1];
    int resposta, idConsulta;
    
    printf("\n1 - Inserir dados\n\n2 - Consultar por ID\n\n3 - Consultar por nome\n\n4 - Consultar por email\n\n5 - Consultar por telefone\n\n6 - Excluir dados\n\n\nQue opcao deseja prosseguir? ");
    scanf("%d", &resposta);
    
    if(resposta == 1)
    {
        if ((arq = fopen("c:\\pastadados\\newdados.txt", "a")) == NULL)
        {
            printf("\n\nNao foi possivel criar o arquivo! :(\n\n");
            exit(1);
        }
        else 
        {
            do {
                GetDados();
                fwrite(&dados, sizeof(Dados), 1, arq);
                printf("\n\nDados salvos com sucesso!\n");
                printf("\nDeseja inseir mais dados? (s/n): ");
                resposta = getche();
            } while (resposta != 'n' && resposta != 'N');
            fclose(arq);
        }
    }

    else if (resposta == 2) {
        system("cls");
        printf("Digite o ID que deseja consultar: ");
        scanf("%d", &idConsulta);
        
        fgets(ID, 2, stdin);
        ID[strcspn(ID, "\n")]; 
        
        ConsultarPorID(ID);
    }
    
    else if (resposta == 6) {
        remove("c:\\pastadados\\newdados.txt");
        printf("\nDados excluidos com sucesso!");
    }
    return 0;
}

    

我不知道,也许这个错误是在 Char 字符串中

帖子版权声明 1、本帖标题:字符信息保存为奇怪的字母
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由frfernandezdev在本站《file》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 当我将应用程序(JFrame)传递到超级构造函数而不是传递“parent”时,此解决方案对我有用。谢谢!

返回
作者最近主题: