can someone edit my c++ code where it will output to a file. I am currently usin
ID: 3788402 • Letter: C
Question
can someone edit my c++ code where it will output to a file. I am currently using xcode.
#include <iostream>
#include <cctype>
#include <cstring>
#include <fstream>
using namespace std;
bool inputNum(int [],int&,istream&);
void multiply(int[],int,int[],int,int[],int&);
void print(int[],int,int,int);
int main()
{ifstream input;
int num1[35],num2[35],len1,len2,num3[60],len3=10,i;
input.open("multiplyV2.txt"); //open file
if(input.fail()) //is it ok?
{ cout<<"file did not open please check it ";
system("pause");
return 1;
}
while(inputNum(num1,len1,input))
{inputNum(num2,len2,input);
multiply(num1,len1,num2,len2,num3,len3);
print(num1,len1,len3,1);
print(num2,len2,len3,2);
for(i=0;i<len3;i++)
cout<<"-";
cout<<endl;
print(num3,len3,len3,1);
//cout<<len1<<" "<<len2<<" "<<len3<<endl;
cout<<endl;
}
system("pause");
}
void print(int num[],int len, int maxlen,int n)
{int i,count;
count=maxlen-len;
if(n==2)
count--;
for(i=0;i<count;i++)
cout<<" ";
if(n==2)
cout<<"x";
for(i=len-1;i>=0;i--)
cout<<num[i];
cout<<endl;
}
void multiply(int num1[],int len1,int num2[],int len2,int num3[],int& len3)
{int i,j,tmp ;
for(i=0;i<60; i++)
num3[i]=0;
for(i=0;i<len2;i++)
{ len3=i;
for(j=0;j<len1;j++)
{tmp=num1[j]*num2[i];
num3[len3]=num3[len3]+tmp;
num3[len3+1]=num3[len3+1]+num3[len3]/10;
num3[len3]%=10;
len3++;
}
}
if(num3[len3]!=0)
len3++;
}
bool inputNum(int integer[],int& len,istream& file)
{string in;
int j,k;
for (len=0;len<35;len++ )
integer[len]=0;
len=35-1;
file>>in;
if(!file)
return false;
for(len=0;in[len]!='';len++);
k=0;
for(j=len-1;j>=0;j--)
integer[j]=in[k++]-48;
return true;
}
Explanation / Answer
#include <iostream>
#include <cctype>
#include <cstring>
#include <fstream>
using namespace std;
bool inputNum(int [],int&,istream&);
void multiply(int[],int,int[],int,int[],int&);
void print(int[],int,int,int,ofstream&);
int main()
{ifstream input;
ofstream output;
int num1[35],num2[35],len1,len2,num3[60],len3=10,i;
input.open("multiplyV2.txt"); //open file
output.open("output.txt"); //open file
if(input.fail()) //is it ok?
{ cout<<"file did not open please check it ";
return 1;
}
while(inputNum(num1,len1,input))
{inputNum(num2,len2,input);
multiply(num1,len1,num2,len2,num3,len3);
print(num1,len1,len3,1,output);
print(num2,len2,len3,2,output);
for(i=0;i<len3;i++)
{
cout<<"-";
output<<"-";
}
cout<<endl;
output<<" ";
print(num3,len3,len3,1,output);
//cout<<len1<<" "<<len2<<" "<<len3<<endl;
cout<<endl;
}
}
void print(int num[],int len, int maxlen,int n,ofstream& o)
{int i,count;
count=maxlen-len;
if(n==2)
count--;
for(i=0;i<count;i++)
{
cout<<" ";
o<<" ";
}
if(n==2)
{
cout<<"x";
o<<"x";
}
for(i=len-1;i>=0;i--)
{
cout<<num[i];
o<<num[i];
}
cout<<endl;
o<<endl;
}
void multiply(int num1[],int len1,int num2[],int len2,int num3[],int& len3)
{int i,j,tmp ;
for(i=0;i<60; i++)
num3[i]=0;
for(i=0;i<len2;i++)
{ len3=i;
for(j=0;j<len1;j++)
{tmp=num1[j]*num2[i];
num3[len3]=num3[len3]+tmp;
num3[len3+1]=num3[len3+1]+num3[len3]/10;
num3[len3]%=10;
len3++;
}
}
if(num3[len3]!=0)
len3++;
}
bool inputNum(int integer[],int& len,istream& file)
{string in;
int j,k;
for (len=0;len<35;len++ )
integer[len]=0;
len=35-1;
file>>in;
if(!file)
return false;
for(len=0;in[len]!='';len++);
k=0;
for(j=len-1;j>=0;j--)
integer[j]=in[k++]-48;
return true;
}
===============================================
multiplyV2.txt
1 2 3 4 5 6 7 8
============================================
output.txt
1
x2
-
2
3
x4
--
12
5
x6
--
30
7
x8
--
56
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.