Как читать текстовый символ за символом и построчно на c ++? - PullRequest
0 голосов
/ 27 марта 2012

это я снова с этим проектом.У меня проблемы с чтением текста на моем входе, потому что программа никогда не заканчивается.Проблема здесь полное описание проблемы , но я не знаю, как прочитать текст char на char, а затем прочитать следующую строку таким же образом.

    freopen("input.txt","rt",stdin);
freopen("output.txt","wt",stdout);

int n=-1;
int m=-1;
int cont =0;
int VMatriz[100][100]={0};
int Mapa[100][100]={0};
while(n!=0 && m!=0)
{
    scanf("%d %d",&n,&m);

    if (n==0 && m==0)
        break;
    cont++;
    printf("Field # %d",cont);


    for (int i=0;i<n;i++)
    {   printf("/n");
        for (int j=0;j<m;j++)
        {
            //scanf("%d ",&Mapa[i][j]);
            Mapa[i][j]=getchar();

            if (Mapa[i][j]=='*')
                {
                    if (j-1>=0)
                        VMatriz[i][j-1]++;
                    if (j+1<m)
                        VMatriz[i][j+1]++;
                    if (i-1>=0)
                        VMatriz[i-1][j]++;
                    if (i+1<m)
                        VMatriz[i+1][j]++;

                    if (j-1>=0 && i-1>0)
                        VMatriz[i-1][j-1]++;
                    if (j-1>=0 && i+1<m)
                        VMatriz[i+1][j-1]++;
                    if (j+1<m && i-1>0)
                        VMatriz[i-1][j+1]++;
                    if (j+1<m && i+1<m)
                        VMatriz[i+1][j+1]++;

                    VMatriz[i][j]='*';

                printf("%d",VMatriz[i][j]);


                }

        }   

    }
    printf("/n");


}
return 0;

1 Ответ

0 голосов
/ 27 марта 2012

Сначала сделайте логику простой

  1. Читайте построчно, пока не достигнете EOF
  2. Разбор строки для каждого символа

Вы можете использовать CStdioFile

CStdioFile file (_T("File.txt"), CStdioFile::modeRead);
CString buffer;

while (file.ReadString(buffer))
{
   CString strLine = buffer;
   //Parse the strLine for each character
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...