Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - С :запись из одного файла в другой только часть строки

Ответить
Настройки темы
C/C++ - С :запись из одного файла в другой только часть строки

Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


Здравствуйте.Подскажите пожалуйста:у меня есть исходный файл,в строках которого находится информация о студентах:фио,номер группы,несколько
оценок.фио от номера группы,номер группы от оценок и оценки друг от
друга отделены символом |.В новый файл надо записать только фио и номер
группы,то есть без оценок.В данном коде идея в том,чтобы записывать посимвольно до второй черточки,то есть до второго символа |.Но он просто переписывает в новый весь старый.помогите пожалуйста,замучилась уже с этим заданием.
Код: Выделить весь код
#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <string.h>
#include "locale.h"
using namespace std;
 
 
void main ()
{
    setlocale(LC_ALL, "Russian");
    system("cls");  // Очистка экрана
    
    char famil2[30];
    char imya2[30];
    char otchest2[30];
    char	nomer2[20];
    int i ,b=0;
	char j=0;
    char s[200];
	char dob[100];
	FILE *t, *nf;
    t = fopen("D:\\программирование\\прога\\tenis\\tenis\\student.txt", "rt+");//открываю исходный текстовый файл
    if(t == NULL)
    {
        printf("Ошибка при открытии файла.\n");
        system ("pause");
        exit(1);
    }
    
    nf = fopen ("stud.txt", "wt+");//создаю новый файл для перезаписи в него строк

 printf("Введите фамилию имя отчество студента через пробел: ");
 gets(dob);
 	
    while(feof(t)==NULL)
    { 
       fgets(s,200,t);
	   
	   while(j=!2)
	   {
		   if(s[i]=='|')
			   {j++;
		   i++;}
	   s[i+1]='\0';
		fputc(s[i],nf);
	   }

	   fputs(s,nf);

	   
	 break;
	}
	
	
	 fclose(t);
	 fclose(nf);
			
    
}

Отправлено: 22:10, 07-07-2013

 

Аватара для deviance

Пользователь


Сообщения: 123
Благодарности: 43

Профиль | Отправить PM | Цитировать


Цитата alfaw:
Код: Выделить весь код
while(j=!2) { if(s[i]=='|') {j++; i++;} s[i+1]='\0'; fputc(s[i],nf); } fputs(s,nf);
»
На первый взгляд, проблема в выполнении fputc(), а затем еще и fputs().
Вы идете по строке до тех пор, пока не найдете вторую вертикальную черту (попутно помещая символы в файл). Находите вторую вертикальную черту, ставите завершающий нуль.. И пихаете "обрезанную" строку в файл, хотя она там уже есть (накопилась из единичных символов, пока Вы вертикальные черточки искали).

Вообще говоря, задача звучит типично. И типичным решением будет использование awk:
Код: Выделить весь код
awk 'BEGIN {FS="|"}; {print $1, $2}' student.txt
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:40, 07-07-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - С :запись из одного файла в другой только часть строки

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBS/WSH/JS - [решено] Экспорт данных из одного txt файла в другой TRaMeLL Скриптовые языки администрирования Windows 31 17-10-2012 11:33
CMD/BAT - [решено] Сравнение файлов и замена значения из одного файла в другой. Aleks911tat Скриптовые языки администрирования Windows 12 25-08-2012 22:27
CMD/BAT - Перенос строк из одного файла в другой jackscorpse Скриптовые языки администрирования Windows 0 25-08-2012 00:31
PowerShell - [решено] Поиск и вставка информации из одного csv-файла в другой IvanXXL Скриптовые языки администрирования Windows 1 20-07-2011 12:48
Как экспортировать поле из одного dbf файла в другой? Raman Программное обеспечение Windows 1 04-04-2008 14:30




 
Переход