При выполнении выдаёт ошибку
has triggered a breakpoint
Как это исправить?
#include "stdafx.h"
#include <stdio.h>
#define MAX_STR_SIZE 0x666 // Maximum string length
#define MIN_STR_SIZE 0x5 // Minimum string length
#pragma warning(disable:4996)
int main()
{
int ch;
int count = 0;
int p = 0;
FILE *fp;
char buff[MAX_STR_SIZE];
if ((fp = fopen("C:\asm\123.txt", "rb")) == NULL)
while ((ch = getc(fp)) != EOF)
{
if (ch<' ' || ch>'z')
{
if (count>(MIN_STR_SIZE - 2))
if (count>p)
{
printf(&buff[0]);
}
else
{
printf("%08x:%s\n", ftell(fp), &buff[0]);
}
p = 0; count = 0;
}
else
{
buff[p++] = ch; buff[p] = 0; count++;
if (p == (MAX_STR_SIZE - 1))
{
printf("%08x:%s\n", ftell(fp), &buff[0]);
p = 0;
}
}
}
return 0;
}
Гм!
if ((fp = fopen("C:\asm\123.txt", "rb")) == NULL)
while ((ch = getc(fp)) != EOF)
...
Т.е. если файл НЕ открылся, то вы начинаете из него читать... Понятно, что получается не то, что вы хотите.
И, кстати, не забывайте, что в строковых литералах \ имеет особый смысл (начало управляющей (escape) последовательности), так что имя файла должно записываться как
"C:\\asm\\123.txt"
Дальше ошибки не искал.
Нужно экранировать символы \. И еще момент, ты начинаешь чтение файла если он не открылся. Поэтому строку:
if ((fp = fopen("C:\asm\123.txt", "rb")) == NULL)
нужно заменить на:
if ((fp = fopen("C:\\asm\\123.txt", "rb")) != NULL)
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости