Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.65
Dilan
8 / 8 / 1
Регистрация: 26.09.2009
Сообщений: 65
#1

Записываем ответ в текстовый файл - C++

03.10.2009, 14:56. Просмотров 2350. Ответов 46
Метки нет (Все метки)

Здравствуйте, вопрос почему ответ не записывается в мой файл? (сохраняет там тока 0)...

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
#include<stdio.h>
#include<iostream.h>
#include <fstream.h>
 
int main(int argc, char* argv[])
{
  cout<<"pasalins nelyginius zodzius...:";
  char sak[128];
  gets(sak);
 
  char *sep="|,<.>/?;;'|}]\{[`!@#$%^&*()-_=+ ";
  char *zodis=strtok(sak,sep);
  int n= strlen(zodis);
 
  if (n%2==0)
    cout <<zodis<<" "; 
 
  while (zodis!= NULL)
  {
    zodis = strtok (NULL, sep);
    if(zodis == NULL)break;
    n = strlen(zodis);
    if (n%2==0)
      cout <<zodis<<" ";
  }
  
  {
FILE *out = fopen( "mano.txt", "w" );
    
       fprintf( out, "%d", zodis );
        
}
 system("PAUSE");
 
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.10.2009, 14:56
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Записываем ответ в текстовый файл (C++):

Пишем программу, считывающую переменную X и вычисляем значение уравнения. Результат записываем в файл Out.txt - C++
Задание звучит так. Дано вещественное число X. Вычислить z=2*(2*x+5)-0.24*100. Входной файл in . txt содержит в первой строке одно...

Дан текстовый файл, содержащий целые числа. Определить в каждой четной строке максимальное число и записать результаты в новый текстовый файл - C++
Дан текстовый файл, содержащий целые числа. Определить в каждой четной строке максимальное число и записать результаты в новый текстовый...

Текстовый файл UTF-8 сохранить как текстовый файл ANSI - C++
Есть текстовый файл в UTF-8 Нужно рядом сохранить его же, но в ANSI Как сделать это средствами c++? Среда Visual Studio 2010 ...

Дано число k (< 10) и текстовый файл, содержащий более k строк. Создать новый текстовый файл, содержащий k последних строк исходного файла - C++
Дано число k (&lt; 10) и текстовый файл, содержащий более k строк. Создать новый текстовый файл, содержащий k последних строк исходного...

Файл: Скопировать текст в другой текстовый файл файл, но чётные строки должны быть с большой буквы... - C++
Создать текстовый файл. Скопировать текст в другой текстовый файл файл, но чётные строки должны быть с большой буквы, а нечетные с...

Даны натуральное , символьный файл и текстовый файл . Файл содержит 30 слов , каждое из которых будем называть ключевым - C++
Добрый день, помогите пожалуйста сделать вот такую программу. Даны натуральное k , символьный файл f и текстовый файл f1 . Файл f...

46
GAV_13
81 / 81 / 4
Регистрация: 14.09.2009
Сообщений: 252
03.10.2009, 15:01 #2
правильно.
C++
1
fprintf( out, "%d", zodis );
записывает в файл содержимое твоего zodis, при этом замисывает как ЧИСЛО ("%d"). Кроме того, strtok() убивает всю строку (в цикле она разделяется пока не будет == NULL). Если пустую строку преобразовать в int то будет равно 0.
0
AnonymC
1175 / 458 / 30
Регистрация: 23.06.2009
Сообщений: 6,355
Завершенные тесты: 1
03.10.2009, 15:52 #3
C
1
 fputs(zodis, out);
это на СИ
0
GAV_13
81 / 81 / 4
Регистрация: 14.09.2009
Сообщений: 252
03.10.2009, 18:49 #4
В общем, если я прально понял задание выводить нада так:
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
#include<stdio.h>
#include<iostream.h>
#include <fstream.h>
 
int main(int argc, char* argv[])
{
  cout<<"pasalins nelyginius zodzius...:";
  char sak[128];
  gets(sak);
 
  char *sep="|,<.>/?;;'|}]\{[`!@#$%^&*()-_=+ ";
  char *zodis=strtok(sak,sep);
  int n= strlen(zodis);
 
FILE *out = fopen( "mano.txt", "w" );
 
  if (n%2==0)
  {
    cout <<zodis<<" "; 
    fprintf( out, "%s ", zodis );
  }
 
  while (zodis!= NULL)
  {
    zodis = strtok (NULL, sep);
    if(zodis == NULL) break;
    n = strlen(zodis);
    if (n%2==0)
    {
      cout <<zodis<<" ";
      fprintf( out, "%s ", zodis );
    }
  }
  system("PAUSE");
 
return 0;
}
1
Dilan
8 / 8 / 1
Регистрация: 26.09.2009
Сообщений: 65
18.10.2009, 13:28  [ТС] #5
очереной раз парки в сохранении ответа в тхт файле

где моя ошибка?

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
/* 
   naiti slovo kotoraja imejet bolse vsego raznix simbolov
    */ 
#include <iostream>
#include <conio.h>
#include <stdio.h>
int main() 
{ 
        char    *s=new char[255],                               
                        *p,                                     //slovo kotoroe iscim
                        *t;                                     
        int             i,j,                                    
                        n,                                      //bukv mamsimum
                        m;                                      //kolicestvo bukv v slove
        
        printf("Iveskite sakini: ");
        for(i=0;(s[i]=getche())!=13;i++);
        s[i]=0;
        FILE *out = fopen( "mano.txt", "w" );
        //poisk slova
        for(n=m=i =0,t=s,p=s;s[i];i++){
                if(s[i]==32){
                        if(m>n) n=m,p=t;
                        m=0,t=&s[i]+1;
                        continue;
                         //fprintf( out, "%s ", *p );
                }
                for(j=0;&t[j]<&s[i];j++)
                        if(t[j]==s[i])
                                break;
                m+=(&t[j]==&s[i]);
        } 
        if(m>n) p=t;
        //vivod slova
        printf("\nZodis turiantis daugiau skirtingu simboliu: ");
        for(;*p&&*p!=32;p++)
                printf("%c",*p);
        getch();
        fprintf( out, "%s", *p );
        
        return 0;
}
0
AnonymC
1175 / 458 / 30
Регистрация: 23.06.2009
Сообщений: 6,355
Завершенные тесты: 1
18.10.2009, 13:32 #6
Dilan, если не трудно скажи по русски что должен делать код,коменты
не правильно mano.txt нужно c://mano.txt
0
TanT
эволюционирую потихоньку
467 / 465 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
18.10.2009, 13:38 #7
не вдаваясь в подробности

C
1
2
3
4
    for(;*p&&*p!=32;p++)
    { printf("%c",*p);fprintf( out, "%c", *p );}
    getch();
//  fprintf( out, "%s", *p ); // не верно
Добавлено через 1 минуту
Цитата Сообщение от МедведЪ Посмотреть сообщение
Dilan,
не правильно mano.txt нужно c://mano.txt
не так уважаемый МедведЪ
( "mano.txt", "w" ); - создаёт фаил в папке проекта и не важно где она располагается
0
AnonymC
1175 / 458 / 30
Регистрация: 23.06.2009
Сообщений: 6,355
Завершенные тесты: 1
18.10.2009, 13:40 #8
Цитата Сообщение от TanT Посмотреть сообщение
не так уважаемый МедведЪ
( "mano.txt", "w" ); - создаёт фаил в папке проекта и не важно где она располагается
извиняюсь,пардон
0
Том Ардер
Модератор
Эксперт по математике/физике
3816 / 2428 / 316
Регистрация: 15.06.2009
Сообщений: 4,433
18.10.2009, 13:42 #9
Если есть fopen, то надо в конце и fclose, иначе можно потерять часть вывода в файл.
0
Dilan
8 / 8 / 1
Регистрация: 26.09.2009
Сообщений: 65
18.10.2009, 14:18  [ТС] #10
програма находит слова где самое большое количество символов разных
собственно она работает, но надо ответ записать в тхт.
на данный момент она записитает мне
(null)
C#
1
//      fprintf( out, "%s", *p ); // не верно
я так и думал что тут ошибся, однако в хелпе ничего ненашол по этой строке =/
0
M128K145
Эксперт JavaЭксперт С++
8316 / 3536 / 143
Регистрация: 03.07.2009
Сообщений: 10,708
18.10.2009, 15:13 #11
Для начала не стоит код писать вперемешку на С и С++. А потом уже надо искать ошибки в коде написанном на одном языке
0
Dilan
8 / 8 / 1
Регистрация: 26.09.2009
Сообщений: 65
08.11.2009, 15:12  [ТС] #12
народ какая буква отвечает за сохранение символов, так как
Цитата Сообщение от GAV_13 Посмотреть сообщение
fprintf( out, "%s ",
отвечает за цифры
0
denver
1610 / 279 / 3
Регистрация: 19.09.2009
Сообщений: 701
08.11.2009, 15:16 #13
http://ru.wikipedia.org/wiki/Printf
0
Dilan
8 / 8 / 1
Регистрация: 26.09.2009
Сообщений: 65
08.11.2009, 16:43  [ТС] #14
собственно в тупике =/, вместо того чтобы вписал ответ в ТхТ, он тока создает файл и ничего не вписывает

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
#include<stdio.h>
#include<iostream.h>
#include<string.h>
#include <fstream.h>
 
int main(int argc, char* argv[])
{
    using namespace std;
    ofstream out_stream;
    out_stream.open("moj txt.txt");
  cout<<"vpishet toka pervije bukvi slova:\n";
  char sak[128];
  gets(sak);
 
  char *sep="|,<.>/?;;'|}]\{[`!@#$%^&*()-_=+ ";
  char *zodis=strtok(sak,sep);
  int n= strlen(zodis);
  
  cout <<zodis[0]<<" "; 
  
  while (zodis!= NULL)  
  {
    zodis = strtok (NULL, sep);
    if(zodis == NULL)break;
    n = strlen(zodis);
    cout <<zodis[0]<<" ";
}
out_stream<<zodis;
out_stream.close();   
       
 system("PAUSE");
 
return 0;
}
однако если переместить
C++
1
2
3
4
5
  int n= strlen(zodis);
  
  cout <<zodis[0]<<" "; 
  out_stream<<zodis;
  out_stream.close();
то он тогда записывает предложение
0
AnonymC
1175 / 458 / 30
Регистрация: 23.06.2009
Сообщений: 6,355
Завершенные тесты: 1
08.11.2009, 16:45 #15
Dilan, а ты fputs ппоробуй
fputs(text, file);
0
08.11.2009, 16:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.11.2009, 16:45
Привет! Вот еще темы с ответами:

Текстовый файл перевести в двоичный, а потом полученный двоичный файл перевести обратно в текстовый - C++
Всем привет. Есть такая задачка: &quot;текстовый файл перевести в двоичный, а потом полученный двоичный файл перевести обратно в текстовый&quot; ...

Не получается прочесть правильно текстовый файл в структуру а затем в бинарный файл - C++
Нужно просто прочесть файл в структуру данных а потом оттуда записать в бинарный файл Вот как выглядит текстовый файл: 11122 Mary...

Задан текстовый файл, необходимо по нему сформировать двоичный файл индексов - C++
Нужна помощь! Задача: Задан текстовый файл, необходимо по нему сформировать двоичный файл индексов (смещений начал строк в текстовом...

Скопировать текстовый файл в новый файл, заменив в каждой строке слова «ok» на «*» - C++
Прошу помочь с задачей.Теории не было, сразу практика.Должны своими мозгами , но моих не хватает. Это последняя задача и завтра зачет.=/ ...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru