相关疑难解决方法(0)

如何从C中的控制台读取一行?

在C控制台程序中读取完整行的最简单方法是什么?输入的文本可能具有可变长度,我们无法对其内容进行任何假设.

c io console stdin readline

98
推荐指数
7
解决办法
25万
查看次数

如何从C中的stdio获取int?

这有很大的麻烦......

printf("> ");
int x = getchar();

printf("got the number: %d", scanf("%d", &x));
Run Code Online (Sandbox Code Playgroud)

产量

> 1234
got the number: 1
Run Code Online (Sandbox Code Playgroud)

c stdio

25
推荐指数
2
解决办法
13万
查看次数

从C中的typedef结构排序数组

问题:尝试对来自我创建的typedef结构(电话簿)的数组进行排序.

目标:尝试构建一个允许用户添加,删除,排序和打印电话簿的电话簿.

我在哪里:除了排序外,我的一切都在运作.我通过阅读各种网络论坛/示例拼凑了一个排序函数,但无法让它工作.

我遇到的问题:添加条目(工作正常)后,如果您尝试对条目进行排序,该函数会将这些条目的值清零,当您打印电话簿时,它会将所有条目显示为空白.它应按姓氏的字母顺序排序.

这是我的排序算法:

void Sort (phone phonebook[])
{
    phone temp;
    int i;  int j;

    for (i=0; i<19; i++)
    {
        for (j=i+1; j<19; j++)
        {
            if (strcmp(phonebook[i].Surname, phonebook[j].Surname) > 0)
            {
                temp=phonebook[i];
                phonebook[i]=phonebook[j];
                phonebook[j]=temp;

            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?


完整代码:

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

//typedef struct to define what's in the phonebook
typedef struct PhoneBookContacts
{
    char Name[20];
    char Surname[20];
    char PhoneNumber[20];
} phone;

//Function prototypes
void AddEntry (phone[]);
void DeleteEntry (phone[]);
void …
Run Code Online (Sandbox Code Playgroud)

c arrays sorting struct typedef

11
推荐指数
1
解决办法
6819
查看次数

使用scanf读取字符串和由/分隔的int

输入包含一个字符串和一个整数,由a分隔'/',如下所示:

hello/17
Run Code Online (Sandbox Code Playgroud)

我想把输入读成一个字符串和一个int,像这样:

char str[20];
int num;
scanf("%s/%d", str, &num);  // this how I tried to do it.
Run Code Online (Sandbox Code Playgroud)

我似乎无法做到,有什么建议吗?

c scanf

10
推荐指数
2
解决办法
2万
查看次数

在同一个程序中使用scanf和fgets?

我需要做以下事情:

int main(void) {
char a,b,cstring;

printf("please enter something");
scanf("%c %c",&a,&b);
prinf("thanks, now some more");
fgets(cstring,35,stdin);

}
Run Code Online (Sandbox Code Playgroud)

问题是每当我从scanf输入第一个变量时,它都会跳到程序的末尾.我该如何做多个输入?

c scanf

6
推荐指数
1
解决办法
7469
查看次数

如何使用scanf验证输入

如何使用scanf验证用户输入.现在我有类似的东西,但不起作用.

注意:我有atoi只是为了验证scanf验证是否有效.

scanf("%[0987654321.-]s",buf);

i = atoi(buf);

if(i)
    index = i;
Run Code Online (Sandbox Code Playgroud)

c c++ scanf

5
推荐指数
2
解决办法
2万
查看次数

刷新输入流C的问题

我无法在这里刷新stdin,有没有办法刷新stdin?如果没有,那么如何让getchar()从用户输入一个字符作为输入,而不是输入缓冲区中scanf留下的"\n"? ?

#include "stdio.h"
#include "stdlib.h"

int main(int argc,char*argv[]) {
    FILE *fp;
    char another='y';
    struct emp {
        char name[40];
        int age;
        float bs;
    };
    struct emp e;
    if(argc!=2) {
        printf("please write 1 target file name\n");
    }
    fp=fopen(argv[1],"wb");
    if(fp==NULL) {
        puts("cannot open file");
        exit(1);
    }
    while(another=='y') {
        printf("\nEnter name,age and basic salary");
        scanf("%s %d %f",e.name,&e.age,&e.bs);
        fwrite(&e,sizeof(e),1,fp);

        printf("Add another record (Y/N)");
        fflush(stdin);
        another=getchar();
    }
    fclose(fp);
    return 0;
}

编辑: - 更新的代码,仍然无法正常工作

#include "stdio.h"
#include "stdlib.h"

int main(int argc,char*argv[]) {
    FILE *fp;
    char …

c stream

5
推荐指数
2
解决办法
7224
查看次数

为什么首先获得C标准的一部分?

每个C程序员都知道gets除非标准输入连接到可信源,否则无法安全使用.但是为什么C的开发人员在成为C标准的正式部分之前没有注意到这样一个明显的错误?为什么要在C11中将其从标准中删除并用一个执行边界检查的函数替换它?我知道fgets它通常用于它的位置,但这有一个令人讨厌的习惯,就是保持\n最后的状态.

c standards gets deprecated c11

5
推荐指数
1
解决办法
202
查看次数

在规范模式下处理转义键的任何方法?

在unix plain C termios编程中,如果我使用规范模式从用户接收一行输入,我该如何处理转义键?通常,如果用户正在输入一行文本并按下转义,则不会发生任何事情.如果用户按下escape,我想取消当前输入.我知道我可以处理单个字符,但后来我失去了规范模式(退格等)的所有好处.

c unix terminal termios

5
推荐指数
1
解决办法
531
查看次数

如何在c中扫描一行的其余部分

我在文件Eg中有几行整数

100 20 300 20 9 45 -1
101 80 80 2 80 2 50 3 70 -1
Run Code Online (Sandbox Code Playgroud)

我想读取前2个字符并将它们存储在整数变量中,然后将其余字符存储在一个字符串中,我可以稍后迭代.

do {
    fscanf(file, "%d %d", &var1,&var2);
    }while(!feof(file));
Run Code Online (Sandbox Code Playgroud)

现在我想扫描剩余的线,移动到下一行并重复.但我不知道如何将其余部分扫描成var3字符串

..有任何想法吗?

c

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

标签 统计

c ×10

scanf ×3

arrays ×1

c++ ×1

c11 ×1

console ×1

deprecated ×1

gets ×1

io ×1

readline ×1

sorting ×1

standards ×1

stdin ×1

stdio ×1

stream ×1

struct ×1

terminal ×1

termios ×1

typedef ×1

unix ×1