Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

работа с потоками на С и С++

8.0K
06 декабря 2006 года
dox
28 / / 07.06.2006
#include<stdio.h>
#include<fstream.h>
#include<iostream.h>
#include<stdlib.h>
//#include<alloc.h>
#include <conio.h>

#define NUM 5

//using namespace std;

void output(int& c,int& d,int i) //inspection and output information
{
if((c-4)*(c-4) + (d-4)*(d-4) <= 16)
cout << "’®&#231;&#170;* M" << i <<" &#175;&#224;&#168;**¤«&#165;¦&#168;&#226;.\n";
else
cout << "’®&#231;&#170;* M" << i << " *&#165; &#175;&#224;&#168;**¤«&#165;¦&#168;&#226;.\n";
}

//------------------------------

void main ()
{

// for C

FILE* f1 = NULL;

int x,x1[NUM], y, y1[NUM];

int tochkaX[NUM], tochkaY[NUM];

char name1 [20], name2 [20];

printf("Vvedite imja faila\n");

scanf ("%s",name1);

printf("Proverka na prinadleschnosti tochek\n");

f1 = fopen (name1,"w");

for (int i = 0; i< NUM; i++)
{
printf("Vvedite x\n");
scanf ("%d",&x);
fprintf(f1,"%d",x);


printf("Vvedite y \n");
scanf ("%d",&y);
fprintf(f1,"%d",y);
}
fclose(f1);

f1 = fopen (name1,"r");


for (int j = 0; j < NUM; j++)
{

fscanf(f1,"%d", &x1[j]);

printf("%d \n",x1[j]);

fscanf(f1,"%d", &y1[j]);
printf("%d \n",y1[j]);

}
int m = 0;
while ( m < NUM)
{
output (x1[m],y1[m],m);
m++;
}

fclose(f1);

getch();




// for C++

/*
cout << "Programma proverki prinadleschnosti tochek dlja C++ \n";

cout << "Vvedite imja faila\n";

cin >> name2;

ofstream mystream (name2);

if (!mystream)
{
cout << "Cannot open file\n";
exit(1);
}
for (int q = 0; q < NUM; q++)
{ x=0;
cout << "Vvedite x\n";
cin >> x;
mystream << x;

y=0;
cout << "Vvedite y\n";
cin >> y;
mystream << y;
}

mystream.close();

ifstream mystream1 (name2);

if (!mystream1)
{
cout << "Cannot open file\n";
exit(1);
}
for (int t =0; t<NUM; t++)
{
mystream1 >> tochkaX[t];
mystream1 >> tochkaY[t];
// output (tochkaX[t],tochkaY[t],t);

}

int m = 0;
while (m <NUM)
{
output (tochkaX[m],tochkaY[m],m);
m++;
}

mystream1.close();

getch();

*/
}





вот код.

Vvedite imja faila
a.txt
Proverka na prinadleschnosti tochek
Vvedite x
4
Vvedite y
1
Vvedite x
2
Vvedite y
3
Vvedite x
4
Vvedite y
56
Vvedite x
7
Vvedite y
5
Vvedite x
4
Vvedite y
3
-1715105417
3
4198406
9460440
4201593
1245072
845666601
845655753
0
0
Точка M0 принадлежит.
Точка M1 не принадлежит.
Точка M2 не принадлежит.
Точка M3 принадлежит.
Точка M4 не принадлежит.


вот результат работы программы.
Значит вопрос в том какую бы использовать функцию по взятию числа из файла. ИЗ кода видно что при использовании fscanf это явно не прокатывает т.к. 1715105417
3
4198406
9460440
4201593
1245072
845666601
845655753
что это за числа непонятно.

Может кто что подскажет?
547
06 декабря 2006 года
Hydra
488 / / 20.06.2006
А ты сам файл-то смотрел?
Возможно надо добавить пробелы в fprintf, чтобы числа не слитно в файл писались.
 
Код:
fprintf(f1,"%d ",x);
6.4K
06 декабря 2006 года
Host
122 / / 22.09.2005
Укажи явно, сколько символов считывать в буфер:
 
Код:
fscanf(f1,"%[COLOR=red]1[/COLOR]d", &x1[j]);
8.0K
06 декабря 2006 года
dox
28 / / 07.06.2006
Разобрался я. Я просто вписал \n, т.е. fscanf(f1,"%d\n",&x) и все заработало.
Код я сам писал.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог