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

Работа с текстовым файлом. Удаление строки. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Массив размером 10 на 10, заполненный квадратами чисел. Объяснить код. http://www.cyberforum.ru/cpp-beginners/thread916978.html
Создать массив размером 10 на 10 и заполнить его квадратами чисел.(первый индекс обозн. десятки, второй единицы). int main() { int m; for(int i=0;i<10;i++) { for(int u=0;u<10;u++) {
C++ Посчитать сколько двоичных единиц содержит каждое число массива. Всем доброго дня! Вообщем дали на практике задание: Дан цифровой массив, посчитать сколько двоичных единиц содержит каждое число. Помогите пожалуйста. Заранее спасибо. http://www.cyberforum.ru/cpp-beginners/thread916955.html
Безымянный аргумент функции C++
функция принимает аргумент, но у него нет имени void f(int) { cout << "Hello world!"; } int main() { int n = 10;
C++ Одномерные массивы.Сформировать случайным образом два массива d(10) и a(10)
Сформировать случайным образом два массива d(10) и a(10). Сложить их. В новом массиве найти первый отрицательный элемент и вывести его на экран. Если отрицательных элементов нет, то дать об этом сообщение. помогите пожалуйста)
C++ Параллельное программирование в С++ http://www.cyberforum.ru/cpp-beginners/thread916891.html
Здравствуйте! я новичок в параллельном программировании. Помогите пожалуйста с задачкой!! Есть одна глобальная переменная, которая должна модифицироваться двумя потоками. Синхронизировать эти потоки по средствам критической секции. Заранее спасибо)
C++ решения уравнения помогите написать программу которая решит уравнение f(X)=(X^3+^2)/(1-X^2+X^3) по формуле симпсона где а=0,1 в=3,2 е=0,001 с подробным описанием решения подробнее

Показать сообщение отдельно
studentka2012
0 / 0 / 0
Регистрация: 03.07.2013
Сообщений: 20
04.07.2013, 12:20  [ТС]     Работа с текстовым файлом. Удаление строки.
можете еще немного подсобить))Мне надо теперь добавлять и удалять оценки для выбранного студента,то есть ищу по ФИО.В моем коде я пока пытаюсь хотя бы добавить оценки для выбранного студента,и у меня получается,что при совпадении записывается строчка и я дописываю оценку,но эти новые оценки идут в новую строку,а надо чтоб в ту же строчку,то есть для одного студента всё в одну строчку.И получается,если я создаю новый файл,куда записываю студентов с совпавшими ФИО и дописываю к ним оценки,то в этот же файл мне надо записать тех студентов,фио которых не совпали,просто без изменения их записать в новый файл.(ну а про удаление оценок у выбранных студентов вообще молчу)
Код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#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");  // Очистка экрана
    int a, b = 1;
    char famil2[30];
    char famil[20];
    char imya[30];
    char imya2[30];
    char otchest[30];
    char otchest2[30];
    int nomer;
    int ocenki;
    int i, o, p = 1;
    int count = 1;
    char s[200];
    char dob[100];
    FILE *t, *nf;
    t = fopen("D:\\программирование\\прога\\tenis\\tenis\\student.txt", "r+");
    if(t == NULL)
    {
        printf("Ошибка при открытии файла.\n");
        system ("pause");
        exit(1);
    }
    
    nf = fopen ("stud.txt", "w+");//создаю новый файл для записи в него строк, в которых нет совпадений с введенной фамилией
    printf("Введите фамилию: ");
    scanf("%s",famil2);
    printf("Введите имя: ");
    scanf("%s",imya2);
    printf("Введите отчество: ");
    scanf("%s",otchest);
    int flag = 0;
    while(!feof(t))
    {
        if (fgets(s, 200, t))
        {
            
            char temp[30];
            int i = 0;
            while (sscanf(s + i, "%s", temp))
                {
                    if (!strcmp(famil2, temp) || !strcmp(imya, temp) || !strcmp(otchest, temp)) 
                     {
                         
                         printf("Введите оценку: ");
                         scanf ("%d", &ocenki);
                        sprintf(dob,"%d |",ocenki);
                        while(1)//бесконечный цикл для ввода оценок
                        {
                            printf("Ввести еще оценку? (1-да, 2-выход) ");
                            scanf ("%d",&p);    
                            if (p==1)
                            {
                                printf ("Введите следующую оценку: ");
                                scanf ("%d", &ocenki);
                                sprintf(dob,"%d |",ocenki);
                                sprintf(dob," ");
                            }
                            else break;
                        }
                    i += strlen(temp) + 1;
                    if (i >= strlen(s)) break;
                    strcat(s,dob);
                    fputs(s,nf);    
                     }
                    else fputs(s,nf);//если нет совпадений
                    break;
                 }
            
            if (!flag)
            
                break; 
            flag = 0;
        }
    }
    fclose (t);
    fclose (nf);
    
    
    
    system ("pause");
    
}
 
Текущее время: 04:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru