读取回车字符的问题...
257
872
081
465
190
程序要读一个文件,文件内包含上述数据,并统计0-9之间10个数据的个数,部分程序如下:
- C/C++ code
for (int i = 0; i < iLength; i++) { char *p = begin; char tmp = *(begin + 1); *(begin + 1) = '\0'; if (0 != strcmp(p, " ") && 0 != strcmp(p, "")) { dsVector.at(atoi(p))->m_sum++; } *(begin + 1) = tmp; begin = begin++; }但是,当读到回车部分时,*p = "",但是这样处理时,依然会执行if语句,导致0的计数会增加一次.
我想问的是,当读取到回车换行部分时,怎样才能判别是换行呢?
[解决办法]
可以一次只读一个字符 然后用
例如
char doc;
if(isdigit(doc))
{
;//代码,可以加一个标记位 每次加1 到3次 执行其他操作 并将其归0
}
[解决办法]
[解决办法]
// wy.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <fstream>
#include <iostream>
using namespace std;
int main()
{
fstream in("wy.txt");
int arr[10];
memset(arr,0,sizeof(arr));
int a;
char c[4];
while (in.getline(c,4))
{
for (int i=0;i<3;i++)
{
arr[c[i]-'0']++;
}
}
for (int i=0;i<10;i++)
{
cout<<i<<"的个数为:"<<arr[i]<<endl;
}
}