Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
alex87
0 / 0 / 0
Регистрация: 03.08.2009
Сообщений: 12
#1

Необходимо дописать значение в вывод текстового файла - C++

18.08.2009, 11:49. Просмотров 1272. Ответов 5
Метки нет (Все метки)

Имеется программа, которая выводит из списка кучи данных, требуемые нам данные (назовём "1.txt"). Но программу необходимо дописать так, чтоб из файла 2.txt считывало необходимый код, и дописывало его в 1.txt.
Вот рабочая прога, которая выводит 1.txt:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<stdio.h>
 
int main(void)
{
  FILE *in, *out;
  char tmp[255], tmp1[12], tmp2[11], ichfil[20], infits[50], iobalv[20];
  int iutano, iutmes, iutdia, iexps;
  double ra, de, dj;
  printf("\nSearching for unidentified flying objects:))\n");
  in=fopen("/home/alexey/astrometry_UCAC2_total_sample", "r");
  if(in==NULL){
    printf("Can not open or find the file!\n");
    return(1);}
  out=fopen("test.search", "w");
  while(fscanf(in, "%254c %lf %lf %11c %d %d %d %lf %d %20c %50c %20c %10c",
     tmp, &ra, &de, tmp1, &iutano, &iutmes, &iutdia, &dj, &iexps, ichfil, infits, iobalv, tmp2)!=EOF)
     fprintf(out, "%13.9lf %13.9lf %16.8lf %.20s\n", ra, de, dj, iobalv);
  fclose(in);
  fclose(out);
  return(0);
}
А вот данные файла 2.txt:
001 | start ephemeris extraction from nth file on the list
0.185 | pixel scale (arcsec/pixel)
568 | IAU code (511=Haute;874=LNA;568=Mauna Kea;500=geocentre, etc)
header_extraction.txt | file with extracted data from fits images
targets.txt | output skybot ephemerides for targets found

Необходимо чтоб в 1.txt добавило код 568 из 2.txt
помогите это сделать
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.08.2009, 11:49     Необходимо дописать значение в вывод текстового файла
Посмотрите здесь:

Построчный вывод текстового файла на экран C++
Вывод содержимого текстового файла на экран C++
C++ В начало двоичного файла целого типа дописать нечетные элементы этого файла.
Вывод рандомных данных в классе из текстового файла C++
C++ Вывод строки из текстового файла
C++ Работа с текстовыми файлами: Вывод из текстового файла
C++ Вывод на экран данные из текстового файла
Вывод слова из текстового файла состоящего из нескольих слов C++
В начало бинарного файла целого типа нужно дописать его минимальное значение, а в конец максимальное C++
C++ Как организовать вывод двумерного массива (целые числа) из текстового файла?
C++ Вывод карты из текстового файла
Разработать программу, выполняющую чтение и вывод из произвольного текстового файла символьных строк C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
odip
Эксперт С++
7155 / 3295 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
18.08.2009, 21:34     Необходимо дописать значение в вывод текстового файла #2
Там где fclose(out) стоит в 19-ой строке - не делай fclose().
А продолжай программу дальше.
Открой второй файл. Читай из него, пиши в out.
Потом в конце сделай fclose(out);

Добавлено через 2 минуты 5 секунд
Разумеется когда будешь читать из файла 2.txt, то нужно писать в out не все подряд, а искать нужную строку (568) и писать в out только ee.
alex87
0 / 0 / 0
Регистрация: 03.08.2009
Сообщений: 12
19.08.2009, 10:40  [ТС]     Необходимо дописать значение в вывод текстового файла #3
Спасибо, но это вот я понимаю, я просто хотелбы уточнить как вот эти самые 568 и ни что более вырезать из 2ого файла и вставить в конечный
odip
Эксперт С++
7155 / 3295 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
19.08.2009, 11:12     Необходимо дописать значение в вывод текстового файла #4
Как-нибудь вот так.
C++
1
2
3
4
5
6
7
8
9
10
11
char buf[1024];
 
for ( ; ; ) {
         if ( fgets( buf, sizeof(buf), in2 ) == NULL ) {
                if ( feof( in2 ) ) { break; }
                /* error */
         }
         if ( strncmp( buf, "568", 3 ) == 0 ) {
                fprintf( out, "%s", buf );
         }
}
Добавлено через 2 минуты 14 секунд
Выражайся яснее - тебе нужно всю строку или что именно вырезать ? Приведи пример.

Добавлено через 32 секунды
Или тебе нужно именно 568 вырезать ?
alex87
0 / 0 / 0
Регистрация: 03.08.2009
Сообщений: 12
19.08.2009, 11:17  [ТС]     Необходимо дописать значение в вывод текстового файла #5
Именно 568
odip
Эксперт С++
7155 / 3295 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
19.08.2009, 11:23     Необходимо дописать значение в вывод текстового файла #6
C++
1
2
3
4
5
6
7
8
9
10
11
char buf[1024];
 
for ( ; ; ) {
         if ( fgets( buf, sizeof(buf), in2 ) == NULL ) {
                if ( feof( in2 ) ) { break; }
                /* error */
         }
         if ( strncmp( buf, "568", 3 ) == 0 ) {
                fprintf( out, "568\n", buf );
         }
}
Yandex
Объявления
19.08.2009, 11:23     Необходимо дописать значение в вывод текстового файла
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru