我正在构建一个系统,我需要一个字符内部的结构来接收一个名称和2个值,但是当我看到结果时,名称总是从一个特殊字符断开。
#define NOMINMAX
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
typedef struct
{
float preco;
int quant;
char* prod[50];
} info;
void imprime(info j)
{
printf("|| Produto: %s || preço: %.2f || quantidade: %d ||n", j.prod, j.preco, j.quant);
}
int main()
{
SetConsoleCP(CP_UTF8);
SetConsoleOutputCP(CP_UTF8);
system("color 0F");
info lojas[50];
for (int x = 0; x < 1; x++)
{
printf("Digite o nome do produto: ");
scanf(" %[^n]s", &lojas[x].prod);
printf("nDigite o preço do produto: ");
scanf(" %f", &lojas[x].preco);
printf("nDigite a quantidade desejada do produto: ");
scanf(" %d", &lojas[x].quant);
system("cls");
}
for (int x = 0; x < 1; x++)
{
imprime(lojas[x]);
}
}
输入:
Digite o nome do produto: Açucar
Digite o preço do produto: 1
Digite a quantidade desejada do produto: 1
预期输出:|| Produto: Açucar || preço: 1.00 || quantidade: 1 ||
收到结果
|| Produto: A || preço: 1.00 || quantidade: 1 ||
我认为问题可能在以下几行:
SetConsoleCP(CP_UTF8);
SetConsoleOutputCP(CP_UTF8);
没有,代码可以工作,但是printf中的特殊字符停止工作。我已经尝试使用
我使用embarcadeiro dev-c++
嗨,这是因为在C语言中,您应该使用其他函数(如gets())扫描字符串。
如果你需要添加库
int main () {
char str[50];
printf("Inster a string: ");
gets(str);
printf("The string is: %s",str);
return(0);
}
我建议您添加
回见