Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> передача имени файла в функцию, передаётся кроказябра 
V
    Опции темы
MZ412
Дата 30.12.2009, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 4.12.2009

Репутация: нет
Всего: нет



Приветствую.
Пишу на ANSI C программку.
Привожу лишь проблемный  код.

Основной файл main.c

Код

#include <stdio.h>
#include "test.h" //функция, принимающая имя файла

int main (int argc, char *argv[])
{
          test(*argv[1]);
}


Файл test.c

Код

#include <stdio.h>

int test(char filename)
{
          printf("%s\n", filename);
}


Файл заголовка test.h

Код

#ifndef TEST_H
#define TEST_H

int test(char filename);

#endif


При выполнении программы вместо нормального пути до файла выводиться ктоказябра типа g┬Л©©7g.
В пределах одного файла тоже нее работает.

Не подскажете, в чём я путаюсь?

Это сообщение отредактировал(а) MZ412 - 30.12.2009, 18:25
PM MAIL   Вверх
cutwater
Дата 30.12.2009, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 592
Регистрация: 24.6.2008

Репутация: 2
Всего: 10



Код

char filename


это символ.


--------------------
user posted image
PM MAIL   Вверх
MightyCat
Дата 30.12.2009, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 60
Регистрация: 2.11.2008
Где: Донецк

Репутация: нет
Всего: нет



Во-первых, функция test ничего не возвращает, поэтому тип возвращаемого значения void, а не int
Во-вторых, вы хотите строку, а в аргументах стоит символ, поэтому меняем filename на filename[] или же char на char* (это как приятнее)
Код

#include <stdio.h>
void test(char* filename)
{
          printf("%s\n", filename);
}

И в main передаем не символ ( test(*argv[1]) ) а всю строку ( test(argv[1]) ) (правильнее сказать, указатель на строку)

Это сообщение отредактировал(а) MightyCat - 30.12.2009, 23:29
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0852 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.