小编k1b*_*ber的帖子

使用strcat进行错误的字符串连接

我正在编写一个程序,从文件中读取字符串,将它们保存到"字符串缓冲区",然后连接这些字符串并将它们写入另一个文件.

#define _CRT_SECURE_NO_WARNINGS
#include <cstdlib>
#include <iostream>
#include <string.h>
#include <stdio.h>

int main() {
    FILE *f = fopen("Read.txt", "r");
    char line[20];
    char buff[15][20];
    int i = 0;
    while (fgets(line, 18, f)) {
        strcpy(buff[i], line);
        i++;
    }
    FILE *h = fopen("Out.txt", "w+");
    for (int j = 0; j < i; ++j) {
        char ct[4] = "smt";
        strcat(buff[j], ct);
        fputs(buff[j], h);
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

文件内容Read.txt:

Lorem ipsum 
dolor sit 
amet
Run Code Online (Sandbox Code Playgroud)

预期输出(File Out.txt):

Lorem ipsumsmt 
dolor sitsmt 
ametsmt
Run Code Online (Sandbox Code Playgroud)

但是我在Out.txt中获得了什么:

Lorem ipsum 
smtdolor …
Run Code Online (Sandbox Code Playgroud)

c arrays string file-io fgets

0
推荐指数
1
解决办法
106
查看次数

标签 统计

arrays ×1

c ×1

fgets ×1

file-io ×1

string ×1