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

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

Войти
Регистрация
Восстановить пароль
 
alexyoung
0 / 0 / 0
Регистрация: 25.06.2010
Сообщений: 6
#1

Словарик/Тестер - C++

29.07.2010, 15:49. Просмотров 471. Ответов 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
38
39
40
41
42
43
44
#include <iostream>
#include <cstdlib>
 
using namespace std;
 
struct word
{
char Eng[35];
char TransOne[50];
char TransTwo[50];
} New;
 
int main()
{
FILE *f;
char *voc = "vocabulary.txt";
char c = 'y';
 
    f = fopen( voc, "a" );
 
    while ( c == 'y' )
    {
        printf("Вводи уже слово, неуч :");
        scanf( "%s", New.Eng );
 
        printf("Терерь основной перевод :");
        scanf( "%s", New.TransOne );
 
        printf("Другое значение.Если нет такого введи -- :");
        scanf( "%s", New.TransTwo );
 
        
 
        fprintf( f, "%s -- %s , (%s)\n", New.Eng, New.TransOne, New.TransTwo );
 
        printf( "Будешь еще записывать? Введи y если да :" );
        scanf( "%c", &c ); 
            
    }
 
    fclose(f);
 
  return EXIT_SUCCESS;
}
Проблема в следующем: не производится повторный ввод слов( более того даже не ожидается ввод проверочного символа, а в файл пишется одна строка и все). Подскажите пожалуйста в чем тут может быть ошибка.
И еще если подкинете идею как реализовать проверщик(должен из файла случайно выдавать английское слово, в ответ получать русское слово и если это слово совпадет с одним из двух значений выдавать типо "верно" и снова англ слово), то будет просто прекрасно.

Заметьте я прошу помощи, подсказки, толчка в нужном направлении но не готового кода. Хочу сам написать.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.07.2010, 15:49     Словарик/Тестер
Посмотрите здесь:

написать словарик - C++
у меня есть словарик в текст. файле вида ааа ыыы вввввввв надо написать функцию которая удаляет\сортирует\выводит словарь,надо...

Тестер - C++
Подскажите пожалуйста как сделать такое и на чём, если можно распишите по-порядку что зачем

Словарик на C# - C#
Задали курсовой! Написать русско - англ словарик! Я сделал базу тхт файлах так как базы данных еще не учили! Да и кажое слово в базу...

Словарик - C++ Builder
Составить программу простейшего автоматизированного англо-немецко-русского словаря, данные словаря хранятся в файле. Программа должна...

Словарик :) - Литература
решил я словарик начать составлять на Сайбере О происхождении слова Пацан Альдас Ачюс Количество заимствованных из разных...

Мини-интернет словарик
3.14 — «пи» (применяется для замены слога в матерных выражениях) 14AA41 — (англ. One for All and All for One) один за всех и все за...

Случайное значение (словарик) - MS Excel
Приветствую всех. У меня есть табличка, словарик. Хотелось бы немножко автоматизировать процесс изучения. Мне нужно чтобы бралось любое...

Женско - мужской словарик.
Меня очень развлекла эта статья :hihi:...надеюсь вам тоже понравиться Женско - мужской словарик. Совершенно очевидно, что мужчины...

У кого-нибудь есть словарик VBA функций? - VBA
Я хочу создать программку на VBA. Нормально управляюсь с обычным VB, поэтому в силах своих уверена, но мне нужен русский Help по VBA или...

Тестер - Delphi
Делаю программу для тестирования, почти закончил, проблема в том что я не могу правильно определить ответ пользователя на вопрос. Как я...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
29.07.2010, 16:35     Словарик/Тестер #2
Цитата Сообщение от alexyoung Посмотреть сообщение
Проблема в следующем: не производится повторный ввод слов( более того даже не ожидается ввод проверочного символа, а в файл пишется одна строка и все). Подскажите пожалуйста в чем тут может быть ошибка.
Цитата Сообщение от alexyoung Посмотреть сообщение
scanf( "%s", New.TransTwo );
Цитата Сообщение от alexyoung Посмотреть сообщение
scanf( "%c", &c );
C
1
2
3
scanf("%s%*c", New.TransTwo );
...
scanf("%c%*c", &c);
Добавлено через 5 минут
Цитата Сообщение от alexyoung Посмотреть сообщение
И еще если подкинете идею как реализовать проверщик(должен из файла случайно выдавать английское слово, в ответ получать русское слово и если это слово совпадет с одним из двух значений выдавать типо "верно" и снова англ слово), то будет просто прекрасно.
из массива структур случайным образом брать любую, выводить из неё английское слово, читать в буфер ответ, сравнивать с первым русским из структуры, если не совпадёт - сравнивать со вторым...

Кстати, странный у Вас какой-то С...
alexyoung
0 / 0 / 0
Регистрация: 25.06.2010
Сообщений: 6
29.07.2010, 17:09  [ТС]     Словарик/Тестер #3
Прекрасно,все работает. Вот только хотелось бы узнать: что именно делает ваше добавление в форматной строке, если вам не сложно пояснить, разумеется.
П.с. среда разработки KDevelop под KDE.Может поэтому немого отличается...
ForEveR
В астрале
Эксперт С++
7969 / 4731 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
29.07.2010, 17:13     Словарик/Тестер #4
alexyoung, Ну как бэ...

C++
1
2
3
#include <iostream>
#include <cstdlib>
using namespace std;
- это C++.

Для C

C
1
2
#include <stdio.h>
#include <stdlib.h>
Быть могут проблемы с хидерами, если будете писать в CPP файле, тогда

C++
1
2
#include <cstdio>
#include <cstdlib>
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
29.07.2010, 17:20     Словарик/Тестер #5
Цитата Сообщение от alexyoung Посмотреть сообщение
Прекрасно,все работает. Вот только хотелось бы узнать: что именно делает ваше добавление в форматной строке, если вам не сложно пояснить, разумеется.
П.с. среда разработки KDevelop под KDE.Может поэтому немого отличается...
Среда разработки тут не при чём абсолютно. Прочитайте внимательнее руководство к scanf:
Код
man 3 scanf
в консоли... Спецификатор %*c пропускает символ, следующий за только-что прочитанным. Проще говоря '\n' проглатывает.
Yandex
Объявления
29.07.2010, 17:20     Словарик/Тестер
Ответ Создать тему
Опции темы

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