Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.03.2012, 10:38   #1
Achervov
 
Регистрация: 14.03.2012
Сообщений: 5
По умолчанию Проблема с считыванием данных из файла

Нужно считать координаты из файла. Очень давно не писал. Подскажите, как избавиться от остатка в строке.


Код:
#include "stdafx.h"
#include "targetver.h"
#include "math.h"
#include <iostream>
#include <fstream>  
#include<stdio.h>
#include <stdlib.h>
#include <conio.h>
#define LENGTH 15
struct student
{char a[LENGTH];
char b[LENGTH];
};
int n=0,i;
int x[14],y[14];
long s, res = 0, sq=0;
using namespace std;
int main()
{
 FILE*f = fopen("test.txt","r");
 if(!f)return 1;
 struct student st;
 while(fgets((char*)&st,sizeof(struct student),f))
 {
     st.a[LENGTH-1]=st.b[LENGTH-1]='\0';
     printf("%s\t%s\t%f\n",st.a,st.b);
	 x[n]=st.a[n];
	 y[n]=st.b[n];
	 n++;
 }
 fclose(f);
 getch();

файл на входе. 14 символов первое число, 14 символов второе число класса float, потом ещё с 30 по 123 строчку идут пробелы нули и буквы
как после 29-ой строчке все затиреть?

Заранее благодарю

Последний раз редактировалось ACE Valery; 14.03.2012 в 13:07.
Achervov вне форума Ответить с цитированием
Старый 14.03.2012, 11:33   #2
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

А сам файл "test.txt" где? Или это головоломка - "Допиши формат сам"?
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 14.03.2012, 11:41   #3
Achervov
 
Регистрация: 14.03.2012
Сообщений: 5
По умолчанию

Фаил test.txt в папке с прогой

test.txt

72.93 659.64 Erster Layer 2 2

252.81 885.07 2 2
678.85 787.83 2 2
463.96 504.93 2 2

я не знаю что это за двойки.

Последний раз редактировалось Achervov; 14.03.2012 в 13:42. Причина: уточнение
Achervov вне форума Ответить с цитированием
Старый 14.03.2012, 13:42   #4
Achervov
 
Регистрация: 14.03.2012
Сообщений: 5
По умолчанию

меня волнуют два первых числа, после них надо 2 других числа строчкой ниже считывать.



Код:
// 11111.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"
#include "targetver.h"
#include "math.h"
#include <iostream>
#include <fstream>  
#include<stdio.h>
#include <stdlib.h>
#include <conio.h>
#define LENGTH 15
#define LargeLENGTH 96
struct student
{char a[LENGTH];
char b[LENGTH];
char z[LargeLENGTH];
};
int n=0, i;
char x[15], y[15];
long s, res = 0, sq=0;
using namespace std;
int main()
{
 FILE*f = fopen("test.txt","r");
 if(!f)return 1;
 struct student st;
 while(fgets((char*)&st,sizeof(struct student),f))
 {
     st.a[LENGTH-1]=st.b[LENGTH-1]='\0';
     printf("%s\t%s\t%f\n",st.a,st.b);
	 x[n]=st.a[n];
	 y[n]=st.b[n];
	 n++;
 }
 fclose(f);
 getch();

	
	// расчет S многоугольника через сумму S трапеций
	for (i = 0; i < n; i++) {
     if (i == 0) {
       s = x[i]*(y[n-1] - y[i+1]); //если i == 0, то y[i-1] заменяем на y[n-1]
       res += s;
     }
     else
       if (i == n-1) {
	 s = x[i]*(y[i-1] - y[0]); // если i == n-1, то y[i+1] заменяем на y[0]
	 res += s;
       }
     else {
       s = x[i]*(y[i-1] - y[i+1]);
       res += s;
     }
		}
	sq = abs(res/2);
	printf ("Square:\n",sq);

	return 0;
	}


Вроде лучше, но кроме двух чисел ещё 0.000000 считывает. И подскажите в чем проблема
x[n]=st.a[n];
y[n]=st.b[n];
я не знаю как нужно присвоить грамотно. чтобы не char был a int.

теперь Test.txt выглядит так


72.93 659.64 0.00000
252.81 885.07 0.00000
678.85 787.83 0.00000
463.96 504.93 0.00000

Последний раз редактировалось ACE Valery; 19.03.2012 в 12:42.
Achervov вне форума Ответить с цитированием
Старый 19.03.2012, 09:24   #5
Achervov
 
Регистрация: 14.03.2012
Сообщений: 5
По умолчанию

Сори за беспокойство я все сам сделал.
Achervov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Считыванием координат с файла и рисование в image! VinDiz Помощь студентам 2 15.01.2012 11:22
проблема из считыванием записи структуры из файла bloger Общие вопросы C/C++ 0 07.12.2011 22:25
Проблема считыванием данных из файла(fortran 90) ivan.tiran Помощь студентам 0 03.11.2011 22:46
Проблемы со считыванием игровой карты с файла Enlightened Gamedev - cоздание игр: Unity, OpenGL, DirectX 4 13.01.2011 19:36
DBGrid. Проблема со считыванием инфы из столбца. Teenager БД в Delphi 6 18.01.2008 15:33