Консультация № 65139
01.12.2006, 19:15
0.00 руб.
0 2 2
Здраствуйте!
Помогите разобраться с вводом/выводом в/из текстовых файлов.
Необходимо считать из файла матрицу 20х20 из целых чисел разделенных пробелами, после точно так же записать.
Спасибо.

Приложение:
Пример матрицы 4х420 -3 5 6-1 0 0 3-45 6 70 991 1 2 -4

Обсуждение

Неизвестный
01.12.2006, 20:28
общий
это ответ
Здравствуйте, IKS!
В input.txt матрица, т.е. 400 чисел, программа переносит в output.txt. В программе был создан массив. Вариант С++.


Приложение:
#include<iostream.h>#include<fstream.h>void main(void){ int massive[20][20]; int i,n; ifstream file("input.txt"); for(i=0;i<20;i++){ for(n=0;n<20;n++){ file >> massive[i][n];}} file.close(); ofstream book("output.txt"); for(i=0;i<20;i++){ for(n=0;n<20;n++){ book << massive[i][n]; book << " ";}} cout << "All right!!!" << endl;}
Неизвестный
02.12.2006, 12:18
общий
это ответ
Здравствуйте, IKS!
В этом нет ничего сложного. просто нужно читать инты (%d). В таком случае когда будете нарываться на пробел, он не принимается во внимание и число считается считанным. При записи - просто после каждого числа - ставить пробел
Пример - ниже (работа в обычной C)

Приложение:
#include <stdio.h>int main(){FILE *f;int a[20][20],i,j;if((f=fopen("input.txt","rt"))==NULL){ printf("ERROR\n");}else{ for(i=0;i<20;i++) for(j=0;j<20;j++) fscanf(f,"%d",&a[i][j]);}fclose(f);//ðàáîòà ñ ìàññèâîì è âîîáùå íóæíûé êîäif((f=fopen("output.txt","wt"))==NULL){ printf("ERROR\n");}else{ for(i=0;i<20;i++){ for(j=0;j<20;j++) fprintf(f,"%d ",a[i][j]); fprintf(f,"\n");}}fclose(f);return 0;}
Форма ответа