gpt4 book ai didi

c++ - 使用随机字符创建 "transposed"文件

转载 作者:行者123 更新时间:2023-11-28 01:07:53 25 4
gpt4 key购买 nike

我想创建一个程序来创建具有随机字符的“.txt”文件,但可以创建转置"file"。接下来,我按照我的意愿添加了两个“.txt”文件的示例。

文件1

A|B|C|D|E|F|G|

H|I|J|K|L|M|N|

O|P|Q|R|S|T|U|

V|W|Z|1|2|3|4|

FILE2(FILE1 转置)

A|H|O|V|

B|I|P|W|

C|J|Q|Z|

D|K|R|1|

E|L|S|2|

F|M|T|3|

G|N|U|4|

现在我添加我编写的代码,以便您可以查看并给我一些关于如何做、修改什么等等的想法。

#include<iostream>
#include<fstream>
#include<stdio.h>
#include<string>
#include<ctime>

using namespace std;

int main()
{
int rows, columns, element1;

char word[10];

ofstream myfile ("File 1.txt");
if(myfile)
srand(1);
for(rows=0;rows<10;rows++)
{
for(columns=0;columns<30;columns++)
{
element1 = rand() % 100000 + 1;
int len = rand () % 4 + 4;
word [len] = 0;
while (len) word [--len] = 'A' + rand () % 58;

myfile<<element1<<word;
myfile<<"|";
}
myfile<<endl;

}
myfile.close();


ofstream myfileS ("File 2.txt");
if(myfileS)
srand(1);
for(columns=0;columns<30;columns++)
{
for(rows=0;rows<10;rows++)
{

element1 = rand() % 100000 + 1;
int len = rand () % 4 + 4;
word [len] = 0;
while (len) word [--len] = 'A' + rand () % 58;

myfileS<<element1<<word;
myfileS<<"|";
}
myfileS<<endl;
}
myfile.close();



system("pause");
return 0;

}

感谢您的帮助!

解决我的疑问

#include<iostream>
#include<fstream>
#include<stdio.h>
#include<string>
#include<ctime>
#include<sstream>

using namespace std;

int main()
{
int rows, columns, rowsMax, columnsMax;
int element1;

char word[10];

int a=0;

cout<<"Write the number of rows of your table: ";
cin>>rowsMax;

cout<<"Write the number of columns of your table: ";
cin>>columnsMax;

int answer;
cout<<"Do you want to create the transposed table??? (1 -> yes, 2 -> no): ";
cin>>answer;

string matriz[7][5]; // string matriz[rowsMax][columnsMax]; I should modify this in every query

string table ("Table1.txt");
ofstream myfile (table);
if(myfile.is_open())
srand(1);
myfile<<id<<"|"<<type<<"|"<<columnsMax<<endl;
for(rows=0;rows<rowsMax;rows++)
{
for(columns=0;columns<columnsMax;columns++)
{
element1 = rand() % 100000 + 1;
int len = rand () % 4 + 4;
word [len] = 0;
while (len) word [--len] = 'A' + rand () % 58;
myfile<<element1<<word;
myfile<<"|";

std::stringstream ss;
ss<<element1;

string mat;
mat +=ss.str();
mat +=word;
matriz[rows][columns]= mat;
}
myfile<<endl;

}
myfile.close();


while(answer==1)
{
string table ("Table");
table +=id;
table +="(transposed)";
table +=".txt";
ofstream myfile (table);
if(myfile.is_open())
myfile<<id<<"|2|"<<columnsMax<<endl;
for(int k=0;k<5;k++)
{
for(int j=0;j<7;j++)
{
myfile<<matriz[j][k]<<"|";
}
myfile<<endl;
}
answer=2;
}
system("pause");
return 0;

}

最佳答案

  • 要创建 file1.txt 的转置版本,您必须将其内容保存在内存中并以转置方式访问该内容。

  • 当你写的时候

    if(myfileS.is_open())
    srand(time(0));

    您只需条件化文件是否打开这一事实。不是接下来的内容。我会在所有东西上戴上牙套。

  • 测试 IOStream 状态的最好方法就是将它用作条件

    if (myfileS)

关于c++ - 使用随机字符创建 "transposed"文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5166835/

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