how to input unsigned char


For this content of the file/stdin:



```
a 3
W 10
A 100
, 10
k 7
. 3
I 13
```

I have written the following code



```
while (k-- > 0)
{			
		scanf(" %c %d",&c, &p);
		printf("c: %d p: %d\n",c,p);
}
```

if I change the format string in scanf from %c to %d I get the value of c and p as 0. Now the thing is that the character input can be unsigned character so I was wondering how to mention the format string in scanf to take unsigned character. I mean the c can be of type unsigned char. I tried %hh and %u but both gives c the value of 0. Morover, if we have a string consisting of unsigned characters. Then how to take input of it? declaring a string as



unsigned char str[1000]  

and passing str to str to fgets gives compile error.
well... your question is kind of hard to follow but, i think your confusion might be in your while() statement.



for instance: if `k=1` , and then you say `while (k-- > 0)` the statement `k-- > 0` is true, because k post-decremented is evaluated while `k=1` but then the post decrement occurs and the rest of the block is evaluated while `k=0`
you write an int, but try to receive a c-string, that can not work.

the radio will not be available (i.e. have a packet received) 99.9% of the time,

introducing a delay and printing something if that is the case is just crazy.

so your code seems to be copy and pasted crap without any understandin… c = input()  

t = len(c)  

temp = ""  

for i in range(0,len(c)):  

    if t<3:  

        break  

    else:  

        if i in (0,1,t-2,t-1):  

            temp = temp+c[i]  

        else:  

            continue  

print(temp) [@cssc](/u/cssc), another option would be to take the regex way.

first, it finds the index of the 5th pipe.

then, it takes the substring until that index.

give this a try:

inputstr.substring(0, regex.matches(inputstr, "\|")(4).index + 1) Something like the following code should do the trick, provided you complete it (just plan 'A' is covered') and make it robust.  

  


```
#include<stdio.h>

int get\_description(const char type\_plan[], const char ** description, const char ** claim\_limit )
{
  int result = 0; // 0 is 'success' , non-zero is 'failure' 

  switch (type\_plan[0])
  {
  case 'A':
    *description = "Room Charges 150/day\nIntensive Care Unit (ICU) Charges 300/day\nHospital Supplies and Services : As charged. Subject to approval by EZMediLife. Surgical Fees\n";
    switch(type\_plan[1])
    {
    case '1':
      *claim\_limit = "Annual Claim Limit 100.000\n";
      break;

    case '2':
      *claim\_limit = "Lifetime Claim Limit 500000\n";
      break;

    default:
      result = -1;
      break;
    }

    break;
  case 'B':
    //...

  case 'C':
    //...

  default:
    result = -1;
    break;
  }

 return result;

}


int main()
{
  const char * plane[]  = { "A1", "K3", "A2" }; -- test planes

  for ( size\_t n=0; n<sizeof(plane) / sizeof(plane[0]); ++n)
  {
    const char * description, * claim\_limit;
    if ( get\_description( plane[n], &description, &claim\_limit) == 0)
    {
      printf("plane %s: %s%s", plane[n], claim\_limit, description);
    }
    else
    {
      printf("unknown plane %s\n", plane[n]);
    }
    printf("\n");
  }
  return 0;
}
``` hi,

sorry you are having issues with this. this is a known bug that was fixed in 2.24. the index of the loop is of an unsigned type in the generated c++ in 2.23. and since there are no negative numbers in unsigned types -1 becomes max integer.

issue where we found this: [https://github.com/stan-dev…](https://github.com/stan-dev/stanc3/issues/536) not [full disclosure] a linux person per se.

something similar to the following should work:

https://www.unix.com/shell-programming-and-scripting/68166-converting-integer-string.html

start simple with just enough code to test the concept.

see if it works and modify/correct as necessary.

then if it still does not work, then post your documented code accordingly along an explanation of what is or is not happening as you expect or desire. How you do this will depend on a number of factors: since you haven't tried to explain in any detail, I'll assume you know nothing, and just give you the basics.  

  

The easiest way to do this is to read the text file into a single string, and then use the .NET framework to find the match:  


```
Dim text As String = File.ReadAllText("D:\Temp\MyFile.txt")
Dim index As Integer = text.IndexOf("hello")
If index >= 0 Then
   ' String is in file, starting at character "index"
End If
```
  

There are other ways, but that is pretty much the simplest. [image] cid\_cat:

error: c++11 is required and is missing or failed to compile.

i can’t help with most of that, but for c++11, see:

<https://gcc.gnu.org/projects/cxx-status.html#cxx11>

you probably must explicitly pass argument “-std=c++11” (or in some cases, perhaps “-std=gnu++11”).

if you l… hello,

there are more possibilities how write output to file. first is by standard methods of jscript by “scripting.filesystemobject”.

var fso = new activexobject(“scripting.filesystemobject”);

var forreading = 1;

var forwriting = 2;

if (fso.fileexists(‘c:\test.txt’))

var f1 = fso.opentextfile… depending if you want to physically add a back return into the code, of if you want to only format the display of the code, you will have to apply different solution

1 if you want to change the code... search and replace using reg exp

search (<p[^+>]*>)|(<\/p>)|(<img[^+>]*>)

replace by $1$2$3<br>

2 if you want to display code format differently

go on edition > bibliotheque de balises...

search for you concerned tag and edit the line retun pop up

![](/legacyfs/online/1611145_pastedImage_0.png)