c - scanf 没有响应?

标签 c

我最近开始学习 C 并尝试编写一个密码数据保护程序。我正在编写一个函数,该函数应该测试一个文件 password.txt 是否存在,如果不存在,它将获得一个空值,然后要求用户设置一个主密码并重复。但是它不允许用户重复密码。有小费吗? - 干杯(记住只有 C 而不是 C++)

/*Headers*/
#include <stdio.h>
#include <stdlib.h>

#define MAX_LENGTH 99

int main(void){

    /*Variable Declaration*/
    char password[] = "Lakaka";

    masterPassword();

    printf("Welcome to Fort-Knox.");

getchar();
return 0;
}

int masterPassword(void){
    /*Password Comparison Variables*/
    char password[MAX_LENGTH];
    char password1[MAX_LENGTH];


    FILE*fp;
    if (fp == NULL){
        printf("Choose a master password:\n");
        scanf("%c", password);
        printf("Please repeat password:\n");
        scanf("%c", password1);

        if (password == password1){
            printf("Password Accepted.");
            fp = fopen("password.txt", "w+");
            printf("File Created");
            fclose(fp);
            return 0;
        }
    }


}

最佳答案

在读取字符串时,使用 %s 而不是 %c 作为格式说明符。 %c 只读取一个字符。

关于c - scanf 没有响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14140892/

相关文章:

c - 用 C 编程时将文件保存为 UTF-8

c - 我应该在 MSVC - C 上使用安全版本的 POSIX 函数吗

c - 如何在不使用 C 中的内置函数和循环的情况下打印字符串的反转?

c - 向上搜索包含层次结构

c - 如何解决打开.exe文件时闪烁(程序结束后立即关闭)的问题?

c - 头指针随着链接列表项的变化而变化

c# - vs2012 c# 与unix c server socket通信

c - longjmp(buffer, 0) 不返回 0

c - Perlin 噪声函数 - 值超出范围

c++ - 在 C 或 C++ 中,如何防止头文件中的前一个 #define 影响后来包含的另一个头文件?