相关疑难解决方法(0)

如何读取用户在C中输入的字符串?

我想阅读用户使用C程序输入的名称.

为此,我写道:

char name[20];

printf("Enter name: ");
gets(name);
Run Code Online (Sandbox Code Playgroud)

但是使用gets不好,那么更好的方法是什么?

c stdin

47
推荐指数
3
解决办法
18万
查看次数

程序不等待用户输入scanf("%c",&yn);

这是我正在使用C语言编写的程序的基本代码.我试图检测输出文件是否已经存在,如果它确实存在,我想询问用户是否要覆盖它.这就是我首先使用fopen(outfilename,"r")打开outfilename文件的原因; 而不是fopen(outfilename,"w");.

它检测文件不存在的情况,但是,如果它确实存在则执行printf("输出文件已存在,覆盖(y/n):"); 声明但完全忽略了scanf("%c",&yn); 声明!

如果文件不存在,程序末尾的printf读取"yn = 0",如果存在,则读取"yn =".有谁能够帮我?

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

int main(void) {
    FILE *inf;
    FILE *outf;
    char filename[21],outfilename[21];
    char yn='0';

    printf("Please enter an input filename: ");
    scanf("%s",&filename);

    printf("Please enter an output filename: ");    
    scanf("%s",&outfilename);

    /* Open file for reading */
    inf=fopen (filename,"r");
    outf=fopen(outfilename,"r");

    /*check that input file exists*/
    if (inf!=NULL) {

        /*check that the output file doesn't already exist*/
        if (outf==NULL){
            fclose(outf);
            /*if it doesn't already exist create file by opening in …
Run Code Online (Sandbox Code Playgroud)

c scanf file-pointer

8
推荐指数
1
解决办法
4万
查看次数

scanf第二次不会要求输入

#include "stdio.h"

int main(void)
{

     int order, nextp, N=3;
     char cont;
     nextp = 0;
     printf("\nShould we continue (y or n): ");
     scanf("%c", &cont);
     if (cont != 'y') return;
     for(; nextp < N; nextp++)
     {
        printf("Enter order number: ");
        scanf("%d", &order);
        printf("you have entered %d\n", order);
        printf("okay now continue with cont\n");


        printf("enter cont y or n: ");
        scanf("%c", &cont);
        if (cont != 'y')
        {
            printf("\nnot equal to y\n");
            break;
        }
        printf("after intepreting t[0]");
      }

   return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出看起来像这样

Should we continue …
Run Code Online (Sandbox Code Playgroud)

c scanf

6
推荐指数
2
解决办法
7586
查看次数

标签 统计

c ×3

scanf ×2

file-pointer ×1

stdin ×1