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

Если в строке есть хоть один ноль - вывести в файл output.txt "YES", иначе вывести "NO"; - C++

Восстановить пароль Регистрация
 
mirax
0 / 0 / 0
Регистрация: 05.10.2012
Сообщений: 13
05.10.2012, 16:12     Если в строке есть хоть один ноль - вывести в файл output.txt "YES", иначе вывести "NO"; #1
Задача. В файле input.txt содержится неприрывная строка нулей и единиц. Если в строке есть хоть один ноль - вывести в файл output.txt "YES", иначе вывести "NO";
Ниже то, что пробовал, но не получаеться ничего...
Помогите с кодом.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <string>
using namespace std;
FILE *f1,*f2;
char s[1000];
 
int a;
int main()
{
f1=fopen("input.txt","r+");
f2=fopen("output.txt","w+");    
fscanf(f2,"%s",&s);
for (int i=0; i<strlen(s); i++)
{
if(s=="0") a++;  
}
if(a>0) fprintf(f2,"%s","YES");
else fprintf(f2,"%s","NO");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.10.2012, 16:12     Если в строке есть хоть один ноль - вывести в файл output.txt "YES", иначе вывести "NO";
Посмотрите здесь:

C++ дано четырехзначное число. если сумма первых 2 цифр=сумме 2 последних, написать "yes", иначе "no"
C++ вывести на друк слово "Одинаковые" если эти массивы полностью совпадают,и слово "Разные" в противоположном случае.
C++ Даны две строки. Если они начинаются с одинаковых символов, то напечатать "ДА", иначе - "НЕТ"
Имеется строка "AAABBCCAA", нужно вывести на экран "3A2B2C2A", и так же сделать обратное действие C++
Работа с файлами (вывести в текстовый файл "g.txt" любую цифру из исходного файла "f.txt" с сохранением строгого порядка) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Кот Ангенс
 Аватар для Кот Ангенс
317 / 267 / 37
Регистрация: 24.05.2012
Сообщений: 629
05.10.2012, 16:31     Если в строке есть хоть один ноль - вывести в файл output.txt "YES", иначе вывести "NO"; #2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
 
int main() {
    FILE* f = fopen("input.txt", "r");
    short c;
    while ((c = getc(f)) != EOF)
        if (c == '0') {
            fclose(f);
            f = fopen("output.txt", "w");
            putc('Y', f);
            putc('E', f);
            putc('S', f);
            fclose(f);
            return 0;
        }
    fclose(f);
    f = fopen("output.txt", "w");
    putc('N', f);
    putc('O', f);
    fclose(f);
    return 1;
}
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
05.10.2012, 17:01     Если в строке есть хоть один ноль - вывести в файл output.txt "YES", иначе вывести "NO"; #3
Цитата Сообщение от mirax Посмотреть сообщение
Ниже то, что пробовал, но не получаеться ничего...
Внимательней будьте:

Цитата Сообщение от mirax Посмотреть сообщение
В файле input.txt содержится неприрывная строка нулей и единиц.
а Вы считываете из файла output.txt (см комментарии):

Цитата Сообщение от mirax Посмотреть сообщение
C++
1
2
f2=fopen("output.txt","w+"); 
fscanf(f2,"%s",&s);// почему f2 ?
mirax
0 / 0 / 0
Регистрация: 05.10.2012
Сообщений: 13
05.10.2012, 19:57  [ТС]     Если в строке есть хоть один ноль - вывести в файл output.txt "YES", иначе вывести "NO"; #4
Спасибо. Все получилось.
Насчет считывания с f2, глюканулу я чего-то. Но если и с f1 считывать, то там код тоже не верный.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
05.10.2012, 20:20     Если в строке есть хоть один ноль - вывести в файл output.txt "YES", иначе вывести "NO"; #5
есть еще одна ошибка.
вот это:

Цитата Сообщение от mirax Посмотреть сообщение
C++
1
if(s=="0") a++;
заменить на:
C++
1
if(s[i]=='0') a++;
mirax
0 / 0 / 0
Регистрация: 05.10.2012
Сообщений: 13
06.10.2012, 00:28  [ТС]     Если в строке есть хоть один ноль - вывести в файл output.txt "YES", иначе вывести "NO"; #6
Цитата Сообщение от valeriikozlov Посмотреть сообщение
есть еще одна ошибка.
вот это:


заменить на:
C++
1
if(s[i]=='0') a++;
Спасибо, вроде и мой код стал работать. Без ошибок, если кому понадобиться.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <string>
using namespace std;
FILE *f1,*f2;
char s[1000];
 
int a;
int main()
{
f1=fopen("input.txt","r+");
f2=fopen("output.txt","w+");    
fscanf(f1,"%s",&s);
a=0;
for (int i=0; i<strlen(s); i++)
{
if(s[i] == '0') a++;  
}
if(a>0) fprintf(f2,"%s","YES");
else fprintf(f2,"%s","NO");
}
Yandex
Объявления
06.10.2012, 00:28     Если в строке есть хоть один ноль - вывести в файл output.txt "YES", иначе вывести "NO";
Ответ Создать тему
Опции темы

Текущее время: 05:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru