高分!求高手帮我写个c++小程序(关于文件操作)

2024-12-22 22:28:58
推荐回答(4个)
回答1:

看来楼主是想要一个类似于转移读写坐标的函数吧

我可以给楼主一个思路

因为文件的读写不是随机的 内存数组的读写是随机的

我们可以抽象文件显示平面为一个二维char*数组
之余你想要规定这个文件是几行几列那都是你的事情
我们只需要保证每个数组横行的结尾都为\n就可以其余用空格填充

这样就比较容易了
char text[1000][1000];

每次往指定坐标填写一个字符的时候只需要将该位置的值置为相应字母
然后将整个数组写入文件就可以

如果写这样的字符串, 那就分开写
一个字母一个字母的写入 用一个简单循环就可以控制.
-------------------------------------------------
#include
#include
#include
#include

char text[1000][1000];

//x, y不要超过900 字符串也别太长
void write_string_by_pos(char text[][1000], char* string, int x, int y)
{
int j = 0, i = strlen(string);
for (j=0; j text[x][y+j] = string[j];
}

int main()
{
int i = 0, j = 0;

//初始化文本
for (i=0;i<1000; i++)
{
for (j=0; j<1000; j++)
{
text[i][j] = ' ';
}
text[i][999]='\n';
}

//开始写字
//在80,80写helloworld
write_string_by_pos(text, "Hello World!", 80, 80);

//在90,90写I Love YOU
write_string_by_pos(text, "I Love You!", 90, 90);

//在45, 33写This is random Text
write_string_by_pos(text, "This is random Text!", 45, 33);

//写入文本
FILE* fp = fopen("xxx.txt", "w");
fwrite(text, sizeof(text), 1, fp);
fclose(fp);

system("pause");
return 0;
}

回答2:

#include
#include
void main()
{ofstream ofile("d:\\1.txt");
if(!ofile) cout<<"文件打开错误\n";
else
{for(int i=1;i<80;i++) ofile<<'\n';
for(int j=1;j<80;j++) ofile<<' ';
ofile<<"hello world!";
}cout<<"请打开D:\\1.txt查看\n";
}

回答3:

#include

int main()
{
int i,j;
freopen("1.txt","w",stdout);
for(i=0;i<79;i++)puts("");
for(j=0;j<79;j++)printf(" ");
puts("hello world!");
return 0;
}

回答4:

#include
#include
using namespace std;
int main(){
ofstream file("1.txt");
for(int i=0;i<79;i++)
file<<"\n";
for(int i=0;i<79;i++)
file<<" ";
file<<"hello world";
file.close();
}