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

много вопросов о вводе-выводе - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.77
AC-93
13 / 13 / 0
Регистрация: 27.01.2010
Сообщений: 150
03.02.2011, 09:54     много вопросов о вводе-выводе #1
Здравствуйте, законченный дельфист решил переехать... вопросов куча, просьба ответить.
1) много вариантов ввода вывода, например сравниать <<, >> и scanf printf по сути они аналогичны? Считается ли каой-то вариант более выгодным или красивым?
2) зачем в scan и print дополнительно указывать тип, если он уже задан при объявлении переменой.
3) при объявлении int a=0; int a={0} ; эти две команды аналогичны? что значат эти круглые скобки. есть ли разница.
4) почему без начального присваивания нельзя прочитать значение с помощью scan, а из потока можно.
int a; scanf("d",a); выдается ошибка.
5) если у меня куча переменных инт, могу я их разом обнулить (нач. присваивание), типа k1,k2,k3,k4=0;
6) при чтении и файла, что значит %d чем отличается от просто d , зачем пишется & перед переменной?
fscanf("%d",&a);
7) как прочитать числа через пробел из файла.
вариант fscanf("%d",k1,k2,k3,k4); не работает, кстати вот это "%d" относится ко всем или только к первому?
8) как сделать из файла стандартный потом, нашел вариант название исполн файла<<input.txt но если я не знаю как называется exe файл? или вдруг ег переименуют.
нашел как сделать из файла потом и читать как in<< и out>> но cin=in; con=out; не работает.
топик будет дополняться) спасибо
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
03.02.2011, 21:55     много вопросов о вводе-выводе #21
AC-93, вы сами на свой вопрос ответили:

Цитата Сообщение от AC-93 Посмотреть сообщение
например когда я объявлял поток
ifstream in; in.open("input.txt");
Вот именно, Вы объявили поток (точнее объект). Вы могли его назвать хоть ololoin и ololoout и работать через эти идентификаторы. Поскольку разработчики класса basic_iostream захотели назвать объекты cin и cout, потому вы с ними именно через такие идентификаторы работаете. cin/cout - это тоже определённые кем-то объекты, как определённые вами in/out, потому вы и используете для доступа к ним имя "с лишним c".

Добавлено через 28 минут
Такой извращённый вариант вас устроит? (для переключения между режимами "консоль/файл" достаточно дописать один символ "/" и убрать один, в обе стороны)

Так данные будут выведены на консоль:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <fstream>
 
//*
using std::cin;
using std::cout;
//*/
 
int main()
{
//-----------------------------------------------------------------------------
    /*
    std::ifstream cin("input.txt");
    std::ofstream cout("output.txt");
    //*/
//-----------------------------------------------------------------------------
 
    cout << "Hello, World!" << std::endl;
 
    return 0;
}
А так в файл:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <fstream>
 
/*
using std::cin;
using std::cout;
//*/
 
int main()
{
//-----------------------------------------------------------------------------
    //*
    std::ifstream cin("input.txt");
    std::ofstream cout("output.txt");
    //*/
//-----------------------------------------------------------------------------
 
    cout << "Hello, World!" << std::endl;
 
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
04.02.2011, 06:39     много вопросов о вводе-выводе #22
Цитата Сообщение от AC-93
Здравствуйте, законченный дельфист решил переехать... вопросов куча, просьба ответить.
есть различия между C и C++, так как это два разных языка, почитай историю
соответственно на C ты пишешь одним образом, а на C++ другим образом

Цитата Сообщение от AC-93
Считается ли каой-то вариант более выгодным или красивым?
C
1
printf("%d%d%d", 1, 2, 3);
C++
1
std::cout << 1 << 2 << 3;
printf() - одна функция, следовательно один вызов
<< - одна функция, следовательно три вызова

добавим пробелы
C
1
printf("%d %d %d", 1, 2, 3);
C++
1
std::cout << 1 << ' ' << 2 << ' '<< 3;
так вот, printf() использовать в C++ не принято, так как printf() сохранена для совместимости с C, от которого C++ произошёл, чтобы программисты C могли переходить на C++ со своими кодами, в которых уже есть printf()
AC-93
13 / 13 / 0
Регистрация: 27.01.2010
Сообщений: 150
17.02.2011, 20:50  [ТС]     много вопросов о вводе-выводе #23
Еще раз всем спаибо, занялся практикой под присмотром знающих людей, стало намного легче и понятней, пока правда проблема с оформлением и работаю по принципу-придумать код на паскале-перевести на с. И еще запретили в плюсах кодить, вопрос о потоках отпал)
Появился новый, не хотел засорять новой темой.

Итак как сделать совместимые файлы 2010 и 2008 visual studio?
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,064
17.02.2011, 21:41     много вопросов о вводе-выводе #24
Как я тебя понимаю.............
Сам лет десять назад мучался такиме-же вопросами


для начала Делфи это Паскаль улучшенный ООП рушечки и т.д.
придуман Виртом для начинающих взамен БАСИКА
первый язык (насколько я знаю) структурного программирования.
С тоже язык структурного программирования
На этом их сходства заканчиваются
Read Write в Паскале это элементы языка
а printf scanf в С это функции реализованные в библиотеке
В С вообще по моему нет функций встроеных в язык
хорошо ли это ?
С называют "ассемблером высокого уровня"
смотри пример
C++
1
2
#include <stdio.h> // подключаем библиотеку ввода/вывода
printf("Hello Word");
и теперь я пишу для Виновс Люних Мак или микроконтролера я не меняю программу
я просто подключаю библиотеку
она реализована так что в одном случае выдает текст на экран
а в другом случае(микроконтроллер) на терминал
можно ли это в паскале???
ты спрашиваешь зачем знак %
отвечаю это знак формата вывода
например
C++
1
2
3
4
char a='A';       // присваиваем переменной значение "А"
printf("%c",a);  // печатаем текстовое значение  А
printf("%d",a);  // печатаем десятичное значение 67
printf("%x",a);  // печатаем шеснадцатеричное значение 41
в общем спрор кто хуже кто лучше бесполезен
надо быстро написать пишем на делфи
надо залезть внутрь системы, написать драйвер -С
С уважением Валерий
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
17.02.2011, 21:47     много вопросов о вводе-выводе #25
ValeryS, это всё очень классно... Только к чему всё это?

AC-93, что вы имеете ввиду под совместимостью?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.02.2011, 22:25     много вопросов о вводе-выводе
Еще ссылки по теме:

Ошибка в вводе/выводе массива C++
Русский язык в вводе/выводе C++
Кирилица отображается нормально при выводе из программы, но иероглифы при вводе в консоль C++

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

Или воспользуйтесь поиском по форуму:
AC-93
13 / 13 / 0
Регистрация: 27.01.2010
Сообщений: 150
17.02.2011, 22:25  [ТС]     много вопросов о вводе-выводе #26
для любой проги создаю проект, в него засовываю файл *.c
потом если хочу открыть на 2008, то пишет что возможно создано в более новой версии и тут открыть не может. приходится руками брать код из исходника и копипастить в новый проект.
а если с 2008 на 2010 притаскиваю, он требует обновить под новую версию, производит действия какие-то, после этого глючит дебагер. опять приходится руками.
мелочь, но вдруг можно без этого.
Yandex
Объявления
17.02.2011, 22:25     много вопросов о вводе-выводе
Ответ Создать тему
Опции темы

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