gpt4 book ai didi

c - 尝试在 strcpy 之前将空字符添加到 char 数组的末尾

转载 作者:太空宇宙 更新时间:2023-11-04 00:17:07 27 4
gpt4 key购买 nike

正在解决我必须使用 . 将文件中的数据读入结构的问题。

文件的组织方式包括一个名称、几行以 # 和评级结尾的 ASCII 艺术字。这是一个例子

Sample Name
( S )
( S )
# 5

我的结构是这样设置的:

typedef struct
{
char* name;
char* art;
int rating;
}CASE;

当我编译源代码时,我不断收到以下警告:

multiple-character character constant
overflow in implicit constant conversion

在这一行 buffer[artCount] = '/0'; 其中 artCount 是缓冲区本身的 strlen。

我只是在字符数组的末尾添加一个空字符,为 strcpy 做准备。我的逻辑有问题吗?

功能:

/*CASE* all is an empty array of CASE structs*/
void readFile(FILE* FPin, CASE* all)
{
CASE* walker = all;
int count = 0;
int artCount;
char buffer[160];

if((FPin = fopen("art.txt", "r")) == NULL)
{
printf("Error opening file.");
exit(100);
}

walker->name = (char*)malloc(sizeof(char)*100);

/*Reads in the name*/
while(fgets(walker->name, 100, FPin) != NULL)
{

/*Reads in the art*/
while(fscanf(FPin, "%c", buffer) != '#');

artCount = strlen(buffer);
buffer[artCount] = '/0';
walker->art = (char*)malloc(sizeof(char)*160);
strcpy(walker->art, buffer);

/*Reads in the rating*/

fscanf(FPin, "%d", &walker->rating);

count++;
walker++;
}

fclose(FPin);
return;
}

最佳答案

常量应该是'\0'(带反斜杠),而不是'/0'(带正斜杠)。

关于c - 尝试在 strcpy 之前将空字符添加到 char 数组的末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10288751/

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