标签: character-arrays

从另一个文件C++中的文件名创建文件

我正在使用C++对几个大文件进行排序.我有一个文本文件,其中包含所有输入文件的名称,每行一个.我想一次读取一个文件名,将它们存储在一个数组中,然后用这些名称创建一个文件.现在,我正在使用fopen和fread,它需要字符数组(我试图优化速度),所以我的文件名被读入一个字符数组数组.但是,这些数组需要预先确定最大大小,因此如果文件名小于最大值,则其余数据充满了垃圾.然后,当我尝试在fopen()中使用该数组作为文件名时,它无法识别该文件,因为它在字符串的末尾有垃圾.我怎么解决这个问题?这是我的代码:

 #include <iostream>
#include <fstream>
#include <string>
#include "stdafx.h"
#define NUM_INPUT_FILES 4

using namespace std;



FILE *fp;
unsigned char *buff;
FILE *inputFiles[NUM_INPUT_FILES];


int _tmain(int argc, _TCHAR* argv[])
{


    buff = (unsigned char *) malloc(2048);
    char j[8];
    char outputstring[] = "Feelings are not supposed to be logical. Dangerous is the man who has rationalized his emotions. (David Borenstein)";

    fp = fopen("hello.txt", "r");

    string tempfname[NUM_INPUT_FILES];
    //fp = fopen("hello.txt", "r");
    for(int i=0;i<NUM_INPUT_FILES;i++)
    {
        fgets(tempfname[i], 20, fp);
        cout << tempfname[i];
    }
    fclose(fp);

    for(int i=0; …
Run Code Online (Sandbox Code Playgroud)

c++ fopen fread character-arrays

0
推荐指数
1
解决办法
364
查看次数

是否可以在C++中拥有一个动态填充的char*数组

我有这种情况.

declare array of char*;
switch(id)
{
case 1:
    add 4 words in array
case 2:
    add 2 words in array
default:
    add 1 word in array
}

use array here;
Run Code Online (Sandbox Code Playgroud)

是否有可能在C++中做这样的事情.我试过这样做,但它不适合我.

c++ dynamic character-arrays

0
推荐指数
1
解决办法
97
查看次数

ArrayList vs char [].这对于构建成大字符串最有效

我正在逐字节地读取数据.当我确定我有一个完整的消息时,我需要将它作为字符串传递给另一个函数.有些消息可能非常大,但大小经常变化.您觉得哪种实现最有效:

public test class
{
   char[] buffer = new char[MAX_SIZE_7200];
   int bufferIndex = 0;
   void parseData(ArrayList<Byte> msg, length)
   {
       while (!msg.isEmpty())
       {
          buffer[bufferIndex++] = (char) msg.remove(0);
          if (isfullmessage)
          {
             parseData(new String(buffer, 0, bufferIndex);
             bufferIndex = 0;  //restart and continue parsing data
          }
       }
   }
 }
Run Code Online (Sandbox Code Playgroud)

要么:

public test class
{
   List<Character> buffer = new ArrayList<Character>();
   int bufferIndex = 0;
   void parseData(ArrayList<Byte> msg, length)
   {
       while (!msg.isEmpty())
       {
          buffer.add((char) msg.remove(0));
          if (isfullmessage)
          {
              StringBuilder builder = new StringBuilder(buffer.size());
              for (Character ch: …
Run Code Online (Sandbox Code Playgroud)

java performance parsing arraylist character-arrays

0
推荐指数
1
解决办法
550
查看次数

如何比较android中的字符串和字符数组?

我有一个字符串"sss"和一个字符数组{'s','s','s'}.我将数组转换为字符串,但比较它们时不会打印"两者相等"的消息.为什么?

public class RoughActivity extends Activity 
{
 private Button checkButton;
 private TextView text;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
        start();
        }

        private void start() {
            int i;
            checkButton=(Button)findViewById(R.id.go);
            text=(TextView)findViewById(R.id.display);
            final String question="sss";
            final char answer[]=new char[question.length()];
            for(i=0;i<question.length();i++)
            {
                answer[i]='s';
            }
            checkButton.setOnClickListener(new View.OnClickListener(){ //on clicking the button,the text must be filled with "both are equal"
                public void onClick(View v){
                    if(question.equals(answer))
                    {
                        text.setText("both are equal");
                    }


                }});
}
}
Run Code Online (Sandbox Code Playgroud)

string android character-arrays

0
推荐指数
1
解决办法
2608
查看次数

Java中字节数组的char操作

我有一个"包含"文本的字节数组 - 此时编码/字符集是未知的.

如何在不从字节数组创建String对象的情况下删除空格,\n,\ r \n字符?

目标是将字节数组显示为文本,并使用用户指定的字符集,只是没有这些空格,\n,\ r \n字符.

java character-encoding character-arrays

0
推荐指数
1
解决办法
145
查看次数