gpt4 book ai didi

c - 字符串开头出现奇怪的字符

转载 作者:太空宇宙 更新时间:2023-11-04 04:59:10 24 4
gpt4 key购买 nike

我正在从文件中获取不同的晶体管数据。该程序将其存储在一个结构中。然后它会提示用户输入。用户输入 5 个不同的值,例如 12 0.03 100 320 65,然后程序获取这些值并将其与文件中的数据进行比较,看看是否有任何晶体管适合您输入的参数。然后程序再次提示用户,重复此过程直到输入字母 q,程序结束。

我遇到的问题 - 我已经在互联网上搜索了几个小时试图找到解决方案,但没有一个解决方案 - 是第一组之后的任何输入都不被接受。所以它看起来像这样。

请输入:电压电流工频增益
15 0.1 200 100 80
15 0.1 200 100 80
所有相关的晶体管
请输入:电压电流工频增益
20 0.3 100 150 40
?1 2 3 4 5

问号总是一个奇怪的字符。在过去的几个小时里,它一直是?在菱形中,字母 P 和一个带有 0010 的小方 block 。我在互联网上找到的所有内容都表明这应该有效。我错过了什么?

这是我的输入函数

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
#define MAX 15
struct input{
int volt, power, freq, gain;
float amp;
};
struct input inputs[MAX_IN];

int CHK =1, number=0;

int input_function1()
{
const char check[3] = {'\0'};
int i;
const char inp[30] = {'\0'};



printf("Please input: Voltage Current Power Frequency Gain\n");

fgets(inp, 30, stdin);
puts(inp); //Prints out the string to see if the input has been correctly accepted
ungetc(inp, stdin);

sscanf(inp, "%s", &check);
if(check[0]!='q' && check[1]!='q' && check[2]!='q')
{

sscanf(inp, "%d %f %d %d %d", &inputs[number].volt, &inputs[number].amp,
&inputs[number].power, &inputs[number].freq, &inputs[number].gain);

}

}

下面是我调用函数的方式。 check_function 是根据数据库检查输入晶体管的函数。

while(CHK==1)   
{
input_function1();

check_function();
++number;

}

最佳答案

您正在声明一个 const char 数组,如下所示:

const char test[30] = {'\0'};

这实际上创建了一个不可编辑的字符串/数组,并且应该标记字符串结尾的终止 0 是该数组中的唯一字符。此零也在 test[0] 中设置。

关于c - 字符串开头出现奇怪的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43158074/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com