alfaw
07-07-2013, 22:10
Здравствуйте.Подскажите пожалуйста:у меня есть исходный файл,в строках которого находится информация о студентах:фио,номер группы,несколько
оценок.фио от номера группы,номер группы от оценок и оценки друг от
друга отделены символом |.В новый файл надо записать только фио и номер
группы,то есть без оценок.В данном коде идея в том,чтобы записывать посимвольно до второй черточки,то есть до второго символа |.Но он просто переписывает в новый весь старый.помогите пожалуйста,замучилась уже с этим заданием.
#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);
}
оценок.фио от номера группы,номер группы от оценок и оценки друг от
друга отделены символом |.В новый файл надо записать только фио и номер
группы,то есть без оценок.В данном коде идея в том,чтобы записывать посимвольно до второй черточки,то есть до второго символа |.Но он просто переписывает в новый весь старый.помогите пожалуйста,замучилась уже с этим заданием.
#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);
}