m0_62267751 2021-12-14 21:45 采纳率: 85.7%
浏览 22
已结题

C语言 想读取CSV文件里面的数字作为password 但是不知道怎么把里面的东西表示出来并用一个变量表示


#include <stdio.h>
#include <math.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>                   
#include<conio.h>

char CSV5();
int main(){
    char p[100], PASSWORD[]=CSV5();
    int i=0;
    while(p[i]=getch())
    {
        if(p[i]==13){
            break;
        }
        if(p[i]!='\b'){
            printf("*");
            i++;
        }
        else{
            printf("\b \b");
            i--;
        }
    }
    p[i]='\0';
    printf("\n");
    if(strcmp(p,PASSWORD)==0)
    {
        printf("Yes\n");
    }
    else
    {
        printf("No\n");
    }
    return 0;
}

char CSV5(){
FILE *fp = NULL;
    char *line,*record;
    char buffer[1024];
    if((fp = fopen("transaction.csv", "r")) != NULL)
    {
        fseek(fp, 0L, SEEK_SET);  
        char delims[] = ",";
        char *result = NULL;
        int j = 0;
        while ((line = fgets(buffer, sizeof(buffer), fp))!=NULL)
        {
            record = strtok(buffer, ",");
            while (record != NULL)
            {
                if (strcmp(record, "Ps") == 0)
                    return *record;
                
                if (j == 9)  
                    break;
                record = strtok(NULL, ",");
                j++;
            }
            j = 0;
 
        }
        fclose(fp);
        fp = NULL;
    }

}

img

  • 写回答

1条回答 默认 最新

  • 书山客 2021-12-16 19:47
    关注
    
    
    #include <stdio.h>
    #include <math.h>
    #include <string.h>
    #include <ctype.h>
    #include <stdlib.h>                   
    #include<conio.h>
    char* CSV5();
    int main() {
        char p[100], *PASSWORD;
        int i = 0;
        while (p[i] = getch())
        {
            if (p[i] == 13) {
                break;
            }
            if (p[i] != '\b') {
                printf("*");
                i++;
            }
            else {
                printf("\b \b");
                i--;
            }
        }
        p[i] = '\0';
        printf("\n");
        PASSWORD = CSV5();
        if (strcmp(p, PASSWORD) == 0)
        {
            printf("Yes\n");
        }
        else
        {
            printf("No\n");
        }
        return 0;
    }
    char* CSV5() {
        FILE* fp = NULL;
        char* line, * record;
        char buffer[1024];
        if ((fp = fopen("transaction.csv", "r")) != NULL)
        {
            fseek(fp, 0L, SEEK_SET);
            char delims[] = ",";
            char* result = NULL;
            int j = 0;
            while ((line = fgets(buffer, sizeof(buffer), fp)) != NULL)
            {
                record = strtok(buffer, ",");
                while (record != NULL)
                {
                    if (strcmp(record, "Ps") == 0)
                        return record;
                    if (j == 9)
                        break;
                    record = strtok(NULL, ",");
                    j++;
                }
                j = 0;
            }
            fclose(fp);
            fp = NULL;
        }
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月24日
  • 已采纳回答 12月16日
  • 修改了问题 12月14日
  • 创建了问题 12月14日

悬赏问题

  • ¥15 Python turtle 画图
  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计