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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.01.2013, 14:53   #11
Igor95
Форумчанин
 
Регистрация: 03.01.2013
Сообщений: 388
По умолчанию

Вот, все открывается:
Код:
#include <iostream>
using namespace std;
#include <iostream>
using namespace std;
char name[50];
FILE *file;
void main() {
	cout << "Enter path to the file: ";
	gets(name);
	file=fopen(name, "rt");
	if (file!=NULL) {
		cout << "File's been opened" << "\n";
		fclose(file);
	}
	else cout << "File's not been opened" << "\n";
system("pause");
}
Скриншот

Последний раз редактировалось Igor95; 31.01.2013 в 14:58.
Igor95 вне форума Ответить с цитированием
Старый 31.01.2013, 15:04   #12
Evgenuych96
Пользователь
 
Регистрация: 07.10.2012
Сообщений: 37
По умолчанию

Вы C++ программист?
Evgenuych96 вне форума Ответить с цитированием
Старый 31.01.2013, 15:13   #13
Igor95
Форумчанин
 
Регистрация: 03.01.2013
Сообщений: 388
По умолчанию

Нет, пока пишу на C)))
Из C++ использую только опреаторы cout и cin
Igor95 вне форума Ответить с цитированием
Старый 31.01.2013, 15:22   #14
Evgenuych96
Пользователь
 
Регистрация: 07.10.2012
Сообщений: 37
По умолчанию

Просто синтаксис вашей программы, мягко говоря, выглядит непривычно.
Например "using namespace std;" я вообще впервые вижу
А баггер API даже не понял какой это язык
Какой API(средой разработки) вы пользуетесь?
Evgenuych96 вне форума Ответить с цитированием
Старый 31.01.2013, 15:24   #15
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Если программа на си, то вот что предлагаю:
Передавать в функцию указатель (к ознакомлению в книге глава про указатели) на первый требуемый элемент массива и количество требуемых элементов.

Цитата:
Например "using namespace std;" я вообще впервые вижу
Это синтаксис с++.
Igor95 пользуется Visual Studio 2012 (это понятно из скриншота).

Строки обязательно должны быть нультерменированными, иначе, при передаче в качестве параметра, будет использоваться всякий мусор после конца строки.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 31.01.2013 в 15:28.
BDA вне форума Ответить с цитированием
Старый 31.01.2013, 15:35   #16
sVasilich
Форумчанин
 
Аватар для sVasilich
 
Регистрация: 16.12.2009
Сообщений: 224
По умолчанию

Да вы лучше сами почитайте и примеры посмотрите
http://www.cplusplus.com/reference/string/string/
Люди бывают 10 типов: те, кто понимают двоичную систему счисления, и те, кто не понимают...
sVasilich вне форума Ответить с цитированием
Старый 31.01.2013, 15:36   #17
Igor95
Форумчанин
 
Регистрация: 03.01.2013
Сообщений: 388
По умолчанию

using namespace std - для того, что бы каждый раз не использовать std::cout (cin)
Igor95 вне форума Ответить с цитированием
Старый 31.01.2013, 15:38   #18
Evgenuych96
Пользователь
 
Регистрация: 07.10.2012
Сообщений: 37
По умолчанию

Неплохая идея, благодарю всех за помощь.
Попробую ее использовать и позже отпишусь, т.к. появилась еще более сложная проблема.
Evgenuych96 вне форума Ответить с цитированием
Старый 31.01.2013, 16:03   #19
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от Evgenuych96 Посмотреть сообщение
И снова здравствуйте.
Мне необходимо передать часть массива в функцию.
Для примера предположим что есть массив символов, который содержит традиционное "Hello, world!", и мне необходимо передать функции только слово "Hello". Таким образом из массива длиной 11 символов(\0 не в счет), мне необходимо передать только 5 символов.
Как это реализовать?
Передавать ссылку на массив, с указанием стартовой и конечной позиции, что бы функция знала, какой кусок из этого массива нужно обработать:

http://liveworkspace.org/code/3aN5IZ$5

Последний раз редактировалось _Bers; 31.01.2013 в 16:07.
_Bers вне форума Ответить с цитированием
Старый 31.01.2013, 17:10   #20
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Цитата:
Предположим есть массив name на 256 ячеек, который заполнен следующим образом
{'f','i','l','e','.','t','x','t','\ 0', ... "мусор" ...}
И необходимо передать этот массив в fopen, отбросив '\0' и "мусор". Если передать fopen(name,"rt"), то он примет '\0' за часть имени и будет искать файл с именем "file.txt" и кодом '\0', и не найдет его т.к. файл "file.txt" не содержит в имени '\0'.
Что-то Вы путаете. Функция fopen, как и многие другие функции, принимающие строки не станут читать мусор после \0. Похоже у Вас не символ '\0' с кодом 0, а буква 'ноль' c ascii кодом 48.
EUGY вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача функции в качестве аргумента maks12 Помощь студентам 5 10.05.2012 08:13
Имя функции в качестве аргумента Artem_Kokos Помощь студентам 1 25.04.2011 00:20
Как массив передать в качестве аргумента функции Mixim C# (си шарп) 7 10.03.2011 09:53
Передача object в качестве аргумента moknomo Microsoft Office Excel 3 14.12.2010 09:35
Функции. Передача массива в качестве параметра функции. Wia Помощь студентам 2 17.03.2009 14:57