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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Tuff
0 / 0 / 0
Регистрация: 13.12.2010
Сообщений: 8
#1

Помогите начинающему. Программа не работает полноценно - C++

13.12.2010, 13:55. Просмотров 1119. Ответов 10
Метки нет (Все метки)

Я начинающий в программировании.Вот написал программу все нормально компилится но работать
так как задумал почему то не хочет.Вот текст:
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
#include <stdio.h>
#include <fcntl.h>
#define MAXLINE 1000
#define FILE 100
 
main()
{
int n,t,fd,a;
char file[FILE];
 
printf('Vvedi stroku: ');
scanf ('%d',a);
 
printf('Imya file:');
scanf ('%d,file');
 
fd = open(file, O_RDONLY);
 
while ((t=getchar()) != EOF){
 
if(t == a)
++n;
}
 
close(fd);
 
printf ('Chislo:%d ',n);
 
}
Задумывалось так:Спрашивает строку ,спрашивает имя файла,открывает файл,ищет там эту строку при нахождении
прибавляет ++n, и потом выводит скоко раз встречается эта строка в файле.
Но почему то когда запускаю получаю: # ./a.out
Vvedi stroku: e
Imya file:/root/t
и все дальше тишина.Помогите плиз разобраться.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2010, 13:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Помогите начинающему. Программа не работает полноценно (C++):

Помогите начинающему - C++
Здравствуйте! Начал изучать C++, но возникло несколько вопросов в процессе изучения. Хотелось бы узнать что к чему 1) Вот допустим int*...

Помогите начинающему программисту... - C++
Прив всем ;) Помогите начинающему программисту... Как сделать так, чтоб при нажатии &lt;F5&gt; мне выдавалось не просто сообщение о том. что в...

помогите совсем начинающему - C++
Есть простейшая программка, использую Dev-C++ ver. 4.9.9.2 #include &lt;iostream&gt; void main() {

Ребята,помогите пожалуйста начинающему!! - C++
Задание 1. Тема: Подпрограммы. Процедуры и функции. Даны действительные a,b,c. Определить (рис.1) ...

Почему программа не работает на MFC статичной библиотеки. а вот на стандартном мфс работает - C++
почему программа не работает на MFC статичной библиотеки. а вот на стандартном мфс работает. Имею в ввиду что сделал прогу которая меняет...

Программа , которая выводит время, за которое программа работает - C++
Вообщем, нужно что бы считалось время от начала работы программы, и выводилось на экран.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
SevaB
0 / 0 / 0
Регистрация: 28.11.2010
Сообщений: 39
13.12.2010, 16:45 #2
getchar читает не из файла, а из консоли, из-за этого и стопор.
0
VDA
Сообщений: n/a
13.12.2010, 17:12 #3
И еще, совет
Изучай сразу с++ а не с.
Сишное мышление чрезвычайно трудно переучивать.

С Уважением Дмитрий.
palva
2614 / 1836 / 263
Регистрация: 08.06.2007
Сообщений: 6,995
Записей в блоге: 4
13.12.2010, 17:15 #4
Вы смешали два способа работы с файлами. Если вы хотите использовать stdio.h, тогда файловая переменная имеет тип FILE* открывается файл fopen, закрывается fclose, символ читается fgetc, строка fgets
0
SevaB
0 / 0 / 0
Регистрация: 28.11.2010
Сообщений: 39
14.12.2010, 09:33 #5
Начинающим сионистам - физкульт привет.
Насколько я понимаю, сей код пишется под unix. Т.е. stdio.h подключается для printf, fcntl - для константы O_RDONLY. И используется парадигма 'open, read/write, close' и вместо getchar()
надо использовать read
0
Tuff
0 / 0 / 0
Регистрация: 13.12.2010
Сообщений: 8
14.12.2010, 13:38  [ТС] #6
Спасибо всем за ответы.Сделал как посоветовали с fopen,fclose etc.
Но теперь он ругается на переполнение буфераgdb)Program received signal SIGSEGV, Segmentation fault. 0x2808421b in fgetc () from /usr/lib/libc.so.4.Может еще поможете,где мне буфер определять.
Изменения:
C++
1
2
3
4
FILE *fd;
fd = fopen(file,'r+');
while((t=fgetc(fd)) != EOF){
fclose(fd);
p.s. Я читаю из файла только цифры.
p.p.s. Заранее спасибо за ответы.
0
palva
2614 / 1836 / 263
Регистрация: 08.06.2007
Сообщений: 6,995
Записей в блоге: 4
14.12.2010, 13:54 #7
Как я понял, ошибка происходит при линковании. Наверно, здесь какая-то нестыковка между версией компилятора, линковщика и библиотек. Здесь могут помочь только знатоки UNIX компиляторов.
0
Tuff
0 / 0 / 0
Регистрация: 13.12.2010
Сообщений: 8
18.12.2010, 13:12  [ТС] #8
А чего нету здесь знатоков UNIX кмпиляторов?
0
SevaB
0 / 0 / 0
Регистрация: 28.11.2010
Сообщений: 39
19.12.2010, 09:03 #9
Вероятно, файл не открывается. r+ не предусматривает создание файла если его нет. В результате имеет fd==NULL и все полагающиеся послествия.
0
Tuff
0 / 0 / 0
Регистрация: 13.12.2010
Сообщений: 8
23.12.2010, 14:58  [ТС] #10
Но файл то существует.Я его заранее создал с правами 777.И потом вроде ошибка идет у функции fgetc().
0
man_of_ring
4 / 4 / 0
Регистрация: 09.12.2010
Сообщений: 278
27.12.2010, 14:13 #11
там должна быть системная переменная для возврата ошибки
ну типа errorcod, или как в винде GetLastError();
найди эту переменную...и вытащи из нее код ошибки
так хоть поймешь где ошибка
напиши...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.12.2010, 14:13
Привет! Вот еще темы с ответами:

программа полноценно работает только если запустить от имени администратора - Visual Basic .NET
программа полноценно работает только если запустить от имени администратора. как сделать чтобы программа сама запускалась от имени...

PL/SQL Помогите начинающему. Почему не работает? - Oracle
Доброе время суток, уважаемые :) подскажите, пожалуйста, где я не прав. надо выбрать одно значение из таблицы в переменную пишу : ...

перенаправление работает, но не полноценно! - Apache, htaccess
После перенаправления страницы отображаются, но такие файлы как css и js которые описаны в коде html подключают далеко не то что надо! а...

Не работает полноценно новый компонент - 1С Битрикс
Доброго времени суток, уважаемые форумчане, надеюсь Вы мне поможете решить мою проблему. На сайте есть компонент, который выводит...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
27.12.2010, 14:13
Ответ Создать тему
Опции темы

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