Clion里面写学生信息管理系统对于中文的输入输出有问题,对下面这串代码,输入名字为中文时,在执行程序时直接输入中文后无法正确查找,但是,在clion中逐步调试的话又可以得到正确的结果。如果name中是英文字母就完全没问题,不管是逐步调试还是直接执行都没有问题,并且在其他编译器如vs2022中即便中文也没有任何问题,只有Clion上有这个问题。应该不是汉字乱码问题,这个我之前调过,汉字的输入输出都是正常
关键是我逐步调试就没有任何问题,直接执行就出问题了
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
typedef struct peo {
char name[20];
int grade;
struct peo *next;
}peo;
void Link_List(peo **head) {
peo * p = (peo*)malloc(sizeof(peo));
scanf("%s %d", p->name, &p->grade);
p -> next = NULL;
if(!*head) {
*head = p;
}
else {
peo *last = *head;
while(last -> next) {
last = last -> next;
}
last -> next = p;
}
}
void Find_List(peo *head) {
char find[20] = {"0"};
scanf(" %s", find);
peo *p = head;
while(p && strcmp(p -> name, find)) {
p = p -> next;
}
printf("The grade is %d\n", p -> grade);
}
void Link_Free(peo **head) {
peo *p = *head;
while(p != NULL) {
peo *next = p -> next;
free(p);
p = next;
}
}
int main(void)
{
int i = 0;
peo * head = NULL;
for(i = 0; i < 3; i++) {
Link_List(&head);
}
Find_List(head);
Link_Free(&head);
}
如果直接执行,中文输入输出没有乱码但是好像是处理不了汉字的数据,就像下图这样,一会随便蹦出来个答案,一会又是好几秒不出来数据最后就显示程序结束返回一堆乱码值,我重新安装卸载了都没用
关键是我逐步调试就没有任何问题,直接执行就出问题了
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
typedef struct peo {
char name[20];
int grade;
struct peo *next;
}peo;
void Link_List(peo **head) {
peo * p = (peo*)malloc(sizeof(peo));
scanf("%s %d", p->name, &p->grade);
p -> next = NULL;
if(!*head) {
*head = p;
}
else {
peo *last = *head;
while(last -> next) {
last = last -> next;
}
last -> next = p;
}
}
void Find_List(peo *head) {
char find[20] = {"0"};
scanf(" %s", find);
peo *p = head;
while(p && strcmp(p -> name, find)) {
p = p -> next;
}
printf("The grade is %d\n", p -> grade);
}
void Link_Free(peo **head) {
peo *p = *head;
while(p != NULL) {
peo *next = p -> next;
free(p);
p = next;
}
}
int main(void)
{
int i = 0;
peo * head = NULL;
for(i = 0; i < 3; i++) {
Link_List(&head);
}
Find_List(head);
Link_Free(&head);
}
如果直接执行,中文输入输出没有乱码但是好像是处理不了汉字的数据,就像下图这样,一会随便蹦出来个答案,一会又是好几秒不出来数据最后就显示程序结束返回一堆乱码值,我重新安装卸载了都没用