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

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

10.04.2020, 13:26. Показов 1443. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru