这是C杀死我的那些夜晚之一。如何一次读取一个数组并将该字符附加到另一个数组的末尾?
bzero(message, BUFFSIZE); // 1024 bytes
strcpy(message, "your_file|");
for (j=0; j<bytes_read; ++j) {
fprintf(stdout, "%c", buffer[j]);
strcat(message, buffer[j]); //<--THIS FAILS!!! WHY!!!!
}
fprintf(stdout, "%s\n", message);
正如一位教授曾告诉我“C不喜欢你。”好吧,今晚我觉得C对我很生气。
答案 0 :(得分:1)
strcat()
期望第二个参数为const char *
(C字符串),而您给它char
。
您可以将char
转换为C字符串,即创建数组
char append[] = { buffer[j], '\0' }`
或每次追加一个字符,最后追加空字节:
bzero(message, BUFFSIZE); // 1024 bytes
strcpy(message, "your_file|");
size_t len = strlen(message);
for (j=0; j<bytes_read; ++j) {
fprintf(stdout, "%c", buffer[j]);
message[len++] = buffer[j];
}
message[len] = '\0';
fprintf(stdout, "%s\n", message);