我很惊讶在 C++ 中没有内置的方法来转换字符串和字符。这是我的问题:我想更新文本文件中的一行:
#include <stdlib.h>
#include <fstream>
#include <windows.h>
#include <iostream>
#include <stdio.h>
using namespace std;
int main(void) {
char l1 [12];
char l2 [15];
char l3 [15];
char l4 [15];
char md [16];
FILE * myfile2 = fopen("state.txt", "r+");
fgets(l1,12,myfile2);
fgets(l2,12,myfile2);
fgets(l3,12,myfile2);
fgets(l4,12,myfile2);
fseek ( myfile2 , 0 , SEEK_SET );
strcpy(md , "detectoroff");
fputs (md,myfile2);
strcpy(md,l2);
fputs (md,myfile2);
strcpy(md,l3);
fputs (md,myfile2);
strcpy(md,l4);
fputs (md,myfile2);
Sleep(1000);
fclose(myfile2);
return EXIT_SUCCESS;
}
最初的文本文件有
a
b
c
d
运行代码时,输出为
detectoroffb
c
d
如果我更换线路
strcpy(md , "detectoroff");
这样
strcpy(md , "detectoroff\n");
现在结果还可以,但是如果我运行两次,在第一个下出现一个空行,如果运行三次,则在另一个下出现一个空行等。我该如何解决这个问题?