Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 30.03.2020
Сообщений: 14

Подскажите пожалуйста как исправить эту ошибку

10.04.2020, 13:26. Показов 1472. Ответов 5
Метки с++ (Все метки)

Студворк — интернет-сервис помощи студентам
//too few arguments to function ‘char* fgets(char*, int, FILE*)’ на строках 13,16,30
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;
FILE* fin,*fout;       
char name[2][20];   
void Out(FILE* f);
//=========================================================
void ChooseName()
{
puts("enter name of file for write"); 
fflush(stdin);
fgets(name[0]);
puts("enter name of file for read");
fflush(stdin);
fgets(name[1]);
}
//============= cоздание текстового файла =================
void CreateFile()
{
  char answer;              
  char s[100];                 
  fflush(stdin);
  if(strcmp(name[0],"")==0) ChooseName();
  fout=fopen(name[0],"w");    
  do
  {
    puts("input string:");    
    fflush(stdin);   
    fgets(s);                    
    fputs(s,fout);                    
    fputc('\n',fout);   
    puts("continue ? [y/n]");
    answer=getchar();       
  }
  while((answer!='n')&&(answer!='N'));
  fclose(fout);            
}
//======== добавления к строке длинного слова ============
void AddWord()
{
  int max;                       
  char word[20];                 
  char sa[100], sb[100];       
  char* p;                     
  char* spacer=". ,:";         
  fin=fopen(name[0],"r");      
  fout=fopen(name[1],"w");  
  while(!feof(fin))         
  {
    fgets(sa,100,fin);      
    if (feof(fin)) break;  
    strcpy(sb,sa);      
    p=strtok(sb,spacer); 
    max=strlen(p);       
    while (p!=NULL)      
    {
      if(max<=strlen(p)) 
      {
        max=strlen(p);  
        strcpy(word,p); 
        if (word[strlen(word)-1]=='\n')  
               
            word[strlen(word)-1]=' ';  
      }
      p=strtok(NULL,spacer);     
    }
    sa[strlen(sa)-1]=' ';     
    strcat(sa,word);        
    fputs(sa,fout);         
    fputc('\n',fout); 
  }              
  fclose(fin);
  fclose(fout);
  fout=fopen(name[1],"r");
  Out(fout);
  getchar();
  fclose(fout);
}
//============ вывода файла на экран ====================
void Out(FILE* f)
{            
  char s[100];     
  while(!feof(f))  
   {
     fgets(s,100,f);       
     if(feof(f)) break;  
     puts(s);            
   }
   fclose(f); 
}
//================ главная програма ==========================
 int main()
 {
  char filename[20];
  puts("Search longest word in strings from file");
  system("pause");
  while (1)
  {
    system("cls");
    cout<<"          MENU  \n"<<endl;
    cout<<"1. Choose name of file"<<endl;
    cout<<"2. Create file"<<endl;
    cout<<"3. Read data from file"<<endl;
    cout<<"4. Add word to string"<<endl;;
    cout<<"5. Exit"<<endl;
    cout<<endl;
    int key;             
    cout<< "Choosen menu item:";
    cin>>key;
    system("cls");
    switch(key)         
    {
     case 1: {ChooseName();break;}
     case 2: {CreateFile();break;}
     case 3: {
              puts("choose name of file:");
              ChooseName();
              if((fin=fopen(name[0],"r"))==NULL) 
              {
               puts("file not created");
               strcpy(filename,name[1]);
              }
              else
               if ((fin=fopen(name[1],"r"))==NULL)
               {
                puts("file not created");
                strcpy(filename,name[0]);
               }
              if ((fin=fopen(filename,"r"))==NULL) puts("return menu");
              else
              {
                cout<<"text from file '" <<filename<<"':"<<endl;
                Out(fin);
              }
              getchar();break;
             }
     case 4: {AddWord(); break;}
     case 5: {exit (0); break;}
     default: {cout<<"Try another time...";getchar();break;}
    }
  }
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.04.2020, 13:26
Ответы с готовыми решениями:

Подскажите, пожалуйста, как исправить ошибку
Условие задачи: Разработать программу для работы с БД, которая обеспечивает автоматизированную продажу авиабилетов на месяц вперед....

Подскажите, как исправить ошибку, пожалуйста
Код учебный. Задали исправить ошибки. Меня смущает вот этот кусок. double Sum4(double (*A),int n) { int s=0; ...

Вот код, подскажите как исправить ошибку, пожалуйста???
Вот вибивает такие ошибки: 1&gt;c:\users\user\desktop\ооп 6\ооп 6\ооп6.cpp(40) : error C2661: D3:: D3: нет перегруженной функции,...

5
2 / 2 / 0
Регистрация: 10.04.2020
Сообщений: 37
10.04.2020, 13:46
‘char* fgets(char*, int, FILE*)’
В этом дело. Функция fgets принимает три параметра, ты же предоставляешь лишь 1..
1
22 / 14 / 8
Регистрация: 19.03.2020
Сообщений: 55
10.04.2020, 13:56
Лучший ответ Сообщение было отмечено yeezysmem как решение

Решение

Компилятор хочет от вас получить 2 аргументом сколько символов надо проверить, а 3 аргументом ссылку на объект с которым предстоит работать
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;
FILE* fin,*fout;       
char name[2][20];   
void Out(FILE* f);
//=========================================================
void ChooseName()
{
puts("enter name of file for write"); 
fflush(stdin);
fgets(name[0],20,fout);
puts("enter name of file for read");
fflush(stdin);
fgets(name[1],20,fin);
}
//============= cоздание текстового файла =================
void CreateFile()
{
  char answer;              
  char s[100];                 
  fflush(stdin);
  if(strcmp(name[0],"")==0) ChooseName();
  fout=fopen(name[0],"w");    
  do
  {
    puts("input string:");    
    fflush(stdin);   
    fgets(s,20,fin);                    
    fputs(s,fout);                    
    fputc('\n',fout);   
    puts("continue ? [y/n]");
    answer=getchar();       
  }
  while((answer!='n')&&(answer!='N'));
  fclose(fout);            
}
//======== добавления к строке длинного слова ============
void AddWord()
{
  int max;                       
  char word[20];                 
  char sa[100], sb[100];       
  char* p;                     
  const char* spacer=". ,:";         
  fin=fopen(name[0],"r");      
  fout=fopen(name[1],"w");  
  while(!feof(fin))         
  {
    fgets(sa,100,fin);      
    if (feof(fin)) break;  
    strcpy(sb,sa);      
    p=strtok(sb,spacer); 
    max=strlen(p);       
    while (p!=NULL)      
    {
      if(max<=strlen(p)) 
      {
        max=strlen(p);  
        strcpy(word,p); 
        if (word[strlen(word)-1]=='\n')  
               
            word[strlen(word)-1]=' ';  
      }
      p=strtok(NULL,spacer);     
    }
    sa[strlen(sa)-1]=' ';     
    strcat(sa,word);        
    fputs(sa,fout);         
    fputc('\n',fout); 
  }              
  fclose(fin);
  fclose(fout);
  fout=fopen(name[1],"r");
  Out(fout);
  getchar();
  fclose(fout);
}
//============ вывода файла на экран ====================
void Out(FILE* f)
{            
  char s[100];     
  while(!feof(f))  
   {
     fgets(s,100,f);       
     if(feof(f)) break;  
     puts(s);            
   }
   fclose(f); 
}
//================ главная програма ==========================
 int main()
 {
  char filename[20];
  puts("Search longest word in strings from file");
  system("pause");
  while (1)
  {
    system("cls");
    cout<<"          MENU  \n"<<endl;
    cout<<"1. Choose name of file"<<endl;
    cout<<"2. Create file"<<endl;
    cout<<"3. Read data from file"<<endl;
    cout<<"4. Add word to string"<<endl;;
    cout<<"5. Exit"<<endl;
    cout<<endl;
    int key;             
    cout<< "Choosen menu item:";
    cin>>key;
    system("cls");
    switch(key)         
    {
     case 1: {ChooseName();break;}
     case 2: {CreateFile();break;}
     case 3: {
              puts("choose name of file:");
              ChooseName();
              if((fin=fopen(name[0],"r"))==NULL) 
              {
               puts("file not created");
               strcpy(filename,name[1]);
              }
              else
               if ((fin=fopen(name[1],"r"))==NULL)
               {
                puts("file not created");
                strcpy(filename,name[0]);
               }
              if ((fin=fopen(filename,"r"))==NULL) puts("return menu");
              else
              {
                cout<<"text from file '" <<filename<<"':"<<endl;
                Out(fin);
              }
              getchar();break;
             }
     case 4: {AddWord(); break;}
     case 5: {exit (0); break;}
     default: {cout<<"Try another time...";getchar();break;}
    }
  }
 
    
    system("pause");
    return 0;
}
1
0 / 0 / 0
Регистрация: 30.03.2020
Сообщений: 14
10.04.2020, 14:30  [ТС]
Да все действительно так!
Только после того как я запускаю программу и выбираю любой из пунктов меню - просто ничего не происходит (программа заканчивает свою работу)
Можете пожалуйста показать где я сделал что-то не так?
0
2 / 2 / 0
Регистрация: 10.04.2020
Сообщений: 37
10.04.2020, 14:48
yeezysmem, у тебя есть чистка экрана(system("cls").Её имеет смысл ставить в сами case меню, чтобы очищался экран, но не перед и после выводов пунктов меню.Надеюсь понятно
1
0 / 0 / 0
Регистрация: 30.03.2020
Сообщений: 14
10.04.2020, 17:33  [ТС]
При вводе "1" Программа падает Обьясните почему
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.04.2020, 17:33
Помогаю со студенческими работами здесь

Как исправить ошибку.подскажите пожалуйста. прога ломается на 79 строке
#include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;ctime&gt; using namespace std; int chisla(int a,int b) { ...

Подскажите пожалуйста где исправить ошибку в программе сделанную в C++
Привет всем! У меня случилась одна не большая проблема. Дело в том, что мне задали написать программу: Дан одномерный массив MAS. Найти...

Как исправить эту ошибку?
Помогите пожайлуста, написал программу, но при компиляции выдает 3 ошибки, что-то немогу понять как их исправить, вроде бы все правильно,...

Не могу понять как исправить эту ошибку
Каждый раз мне выдает такую ошибку. Не знаю как ее исправить. П.5.18.Правил Запрещено размещать задания и решения в виде картинок и...

Выводит ошибку MBS6006 "CL.exe" exited with code 2. Как исправить эту ошибку?
#pragma once #include &quot;iostream&quot; #include &quot;conio.h&quot; #include &quot;cmath&quot; #include &lt;string&gt; #include &quot;windows.h&quot; #define PI 3.14 ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru