Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.09.2014, 20:41   #1
biatlonfan
Новичок
Джуниор
 
Регистрация: 27.09.2014
Сообщений: 2
По умолчанию Помогите, пожалуйста, решить задачу с файлами в С++

Файл содержит буквы латинского алфавита. Подсчитать количество букв 'w' в файле.

Код:
#include <iostream>
#include <cstdlib>
#include <math.h>
#include <windows.h>
#include <stdlib.h>
#include <fstream>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char** argv) {
	FILE * f;
	char str_file[100];
	int p=0;
	f=fopen("D:\\inf eis-15\\????\\my_file.txt","r");
	int i=0;
	char sim;
	while (fgets(str_file, sizeof(str_file), f)!=0)
	{if (str_file[i]='w')
	p=p+1;
	}
	fclose(f);
	cout<<p;
	
	return 0;
}
Посмотрите, пожалуйста, в чем ошибка??

Последний раз редактировалось Stilet; 27.09.2014 в 20:48.
biatlonfan вне форума Ответить с цитированием
Старый 27.09.2014, 20:50   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Думаю хватит такого:
Код:
	for(char c=fgetс(f);!feof(f);c=fgetс(f)) p+=(c=='w');
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.09.2014, 20:55   #3
biatlonfan
Новичок
Джуниор
 
Регистрация: 27.09.2014
Сообщений: 2
По умолчанию

Это вместо цикла while? А все остальное правильно?
biatlonfan вне форума Ответить с цитированием
Старый 27.09.2014, 21:20   #4
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Читать файл побайтно?! Фу, как вульгарно!
Особенно, если он мегабайт на 300.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 27.09.2014, 21:55   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Особенно, если он мегабайт на 300.
Фу как жирно
Цитата:
Это вместо цикла while?
Ну да.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.09.2014, 22:01   #6
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Фу как жирно
Ну чо ты быдлокод плодишь? Щас хомяки накопипастят по всем интернетам и будет хаос. Переделай через буфер, скажем, на 64 кбайта, будет гут.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 28.09.2014, 00:00   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Переделай через буфер, скажем, на 64 кбайта, будет гут.
Да?
Ладно.
Код:
#include <stdio.h>
#include <stdlib.h>

int main()
{
    FILE *f;
    const int n=64000;
    char buf[n];
    int cnt=0;
    if(f=fopen("file","r")==false){printf("ups...");}; else {
        int i,j;
        for(i=fread(&buf,n,1,f);i!=0;i=fread(&buf,n,1,f)){
            for(j=0;j<i;j++) cnt+=buf[j]=='w';
        };
        fclose(f);
        printf("%d",cnt);
    }
    getchar();
    return 0;
}
Не проверял.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.09.2014, 00:56   #8
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Код:
const int n=64000; // не надо так! школоту дезинформируешь!
А потом покупаешь флешку на 64 гига и удивляешься её реальному размеру...
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 28.09.2014, 11:15   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Таких флешек не сущаствует )
И потом мы от темы отошли.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.09.2014, 12:22   #10
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Таких флешек не сущаствует )
У меня, например, вот такая на 64 гига. На ключах брелок.
Цитата:
И потом мы от темы отошли.
Ну не создавать же новую тему "сколько байт в 64 кбайтах?".
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите пожалуйста решить задачу young_rezzee Паскаль, Turbo Pascal, PascalABC.NET 5 11.09.2014 02:26