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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.05.2009, 04:31   #1
Yulai
Новичок
Джуниор
 
Регистрация: 10.05.2009
Сообщений: 2
Вопрос Программа Вводит символьную строку и число N и выводит строку, состоящую из первых N символов (С++)

В общем немогу найти ошибку в коде, почемуто при ввыводе буквы повторяются в случайном порядке. Показываю весь код:

//---------------------------------------------------------------------------

#include <vcl.h>
#include <math.h>
#pragma hdrstop
#include <windows.h>
#include <wincon.h>
#include <stdio.h>
void main()
{
char inp_A[26]="Vvedite stroky\n";
char out_mesA[26]="Vivod\n";
char out_r[26]="\n\nKOL-VO=" ;
char str1[26]="abcdefghijklmnopqrstuvwxyz";

char buffer[100]="";
char buf[2]="";
char A[100]="";
char b_n[100]="",*endptr;

AnsiString str,str2="";
int i,j,k,l;

DWORD len,len_out,len_mes,lenn,lenr,len_s tr2;
DWORD actlen,len_n,actlen2;
HANDLE hstdin,hstdout;
BOOL rc;
len=strlen(buffer);
len_mes=strlen(inp_A);
len_out=strlen(out_mesA);
lenn=strlen(b_n);
lenr=strlen(out_r);

//проверка
hstdout=GetStdHandle(STD_OUTPUT_HAN DLE);
if(hstdout==INVALID_HANDLE_VALUE)Ex itProcess(0);
hstdin=GetStdHandle(STD_INPUT_HANDL E);
if(hstdin==INVALID_HANDLE_VALUE)Exi tProcess(0);

//ввод строки
WriteFile(hstdout,inp_A,len_mes,&le n_mes,0);
rc=ReadFile(hstdin,b_n,80,&actlen,N ULL);
l=0;
if(!rc)ExitProcess(0);

WriteFile(hstdout,out_mesA,len_out, &actlen,0);
//сортируем
for(k=0;k<21;k++)
for(j=0;j<10;j++)
if(b_n[k]==str1[j])
{
l++;
str=b_n[k];
for(int i=1;i<=str.Length();i++) buffer[i-1]=str[i];
buffer[str.Length()]=' ';
actlen=str.Length()+1;
//вывод результата
WriteFile(hstdout,buffer,actlen,&ac tlen,0);
}
str2=l;
buf[0]=' ';
buf[1]=' ';
buf[2]=' ';
for(int i=1;i<=str2.Length();i++) buf[i-1]=str2[i];
len_str2=str2.Length();

WriteFile(hstdout,out_r,lenr,&lenr, NULL);
WriteFile(hstdout,buf,len_str2,&len _str2,NULL);

getchar();
ExitProcess(0);
}
//------------------------------------------------------
Yulai вне форума Ответить с цитированием
Старый 11.05.2009, 11:39   #2
Yulai
Новичок
Джуниор
 
Регистрация: 10.05.2009
Сообщений: 2
По умолчанию

Я вот непогу понять почему ошибку выдает? Вроже все правельно.
Yulai вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перевести число в строку Van777 Паскаль, Turbo Pascal, PascalABC.NET 5 15.05.2009 17:43
[Pascal]: Задача на символьную строку, цикл, одномерные массивы., выручите плз Knife Помощь студентам 2 31.03.2009 21:41
Как при нажатии на строку в Listbox передавать нажатую строку в переменную Михаил Юрьевич Общие вопросы Delphi 5 16.03.2009 12:59
Как вставить число в строку? nec117 Общие вопросы C/C++ 2 18.10.2008 00:41
stringgrid поместить строку более 255 символов SeЯgey Помощь студентам 2 07.05.2008 16:41